├── LICENSE ├── README.md └── stack-haddock-upload /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2020 Dimitri Sabadie 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. 4 | 5 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # stack-haddock-upload 2 | 3 | This tool enables people to send documentation to Hackage with a stack-powered project. 4 | 5 | You just have to pass the project name and the version to upload documentation for. You also need 6 | to be in the root directory of your project. The script will ask you for your Hackage username and 7 | password. 8 | 9 | ## License 10 | 11 | [BSD 0-Clause License](./LICENSE) 12 | -------------------------------------------------------------------------------- /stack-haddock-upload: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Author: Dimitri Sabadie 4 | # 2015 5 | 6 | dist=`stack path --dist-dir --stack-yaml ./stack.yaml 2> /dev/null` 7 | 8 | echo -e "\033[1;36mGenerating documentation...\033[0m" 9 | stack haddock 2> /dev/null 10 | 11 | if [ "$?" -eq "0" ]; then 12 | docdir=$dist/doc/html 13 | cd $docdir 14 | doc=$1-$2-docs 15 | echo -e "Compressing documentation from \033[1;34m$docdir\033[0m for \033[1;35m$1\033[0m-\033[1;33m$2\033[1;30m" 16 | cp -r $1 $doc 17 | tar -c -v -z --format=ustar -f $doc.tar.gz $doc 18 | echo -e "\033[1;32mUploading to Hackage...\033[0m" 19 | read -p "Hackage username: " username 20 | read -p "Hackage password: " -s password 21 | echo "" 22 | curl -X PUT -H 'Content-Type: application/x-tar' -H 'Content-Encoding: gzip' --data-binary "@$doc.tar.gz" "https://$username:$password@hackage.haskell.org/package/$1-$2/docs" 23 | exit $? 24 | else 25 | echo -e "\033[1;31mNot in a stack-powered project\033[0m" 26 | fi 27 | --------------------------------------------------------------------------------