on 27474d8 help sign in
schematic/release
43 lines 1.5 kB history raw
1#!/bin/bash
3set -o xtrace
5dist=`stack path --dist-dir --stack-yaml ./stack.yaml 2> /dev/null`
7rootdir=`pwd`
9cabalfile=`ls *.cabal`
10packagename="${cabalfile%%.*}"
11version=`grep '^version:' schematic.cabal | rev | cut -d" " -f1 | rev`
13echo -e "\033[1;36mTesting library...\033[0m"
14stack test 2> /dev/null
16echo -e "\033[1;36mRunning sdist...\033[0m"
17cabal sdist
19echo -e "\033[1;36mGenerating documentation...\033[0m"
20stack haddock 2> /dev/null
22if [ "$?" -eq "0" ]; then
23 echo -e "\033[1;32mUploading package to Hackage...\033[0m"
24 read -p "Hackage username: " username
25 read -p "Hackage password: " -s password
26 echo ""
27 cabal upload -u $username -p $password dist/$packagename-$version.tar.gz
29 docdir=`find .stack-work -name "$packagename-$version-docs"`
31 echo -e "Compressing documentation from \033[1;34m$docdir\033[0m for \033[1;35m$packagename\033[0m-\033[1;33m$version\033[1;30m"
32 tar -c -v -z --format=ustar -f $docdir.tar.gz $docdir
33 echo -e "\033[1;32mUploading documentation to Hackage...\033[0m"
34 cd $docdir
35 cd ..
36 curl -X PUT -H 'Content-Type: application/x-tar' -H 'Content-Encoding: gzip' --data-binary "$packagename-$version-docs.tar.gz" "https://$username:$password@hackage.haskell.org/package/$packagename-$version/candidate/docs"
37 open "https://hackage.haskell.org/package/$packagename-$version/candidate/"
38 cd $rootdir
39 echo "To publish the candidate, use 'cabal upload --publish'."
40 exit $?
41else
42 echo -e "\033[1;31mNot in a stack-powered project\033[0m"
43fi