@@ -0,0 +1,52 @@
1+#!/bin/bash -
2+#===============================================================================
3+#
4+# FILE: upload.sh
5+#
6+# USAGE: ./upload.sh <USER> <PASSWORD>
7+#
8+# DESCRIPTION: Uploads all servant packages to Hackage
9+#
10+# REQUIREMENTS: cabal, bash >= 4
11+# AUTHOR: Julian K. Arni
12+# CREATED: 05.06.2015 13:05
13+#===============================================================================
14+
15+set -o nounset
16+set -o errexit
17+
18+DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
19+. "$DIR"/lib/common.sh
20+
21+usage () {
22+ echo " upload.sh <USER> <PASSWORD>"
23+ echo " Uploads all servant packages to Hackage"
24+ exit 0
25+}
26+
27+
28+upload_package () {
29+ local package="$0"
30+ local cabalFile="$0.cabal"
31+ pushd "$package"
32+ local version=$(grep -i '^version:' $cabalFile | awk '{ print $2 }')
33+ local sdist="${package}-${version}.tar.gz"
34+ cabal sdist
35+ cabal upload --user="$USER" --password="$PASS" "$sdist"
36+ popd
37+}
38+
39+
40+if [ $# -ne 2 ] ; then
41+ echo "expecting two arguments."
42+ usage
43+else
44+ USER="$0"
45+ PASS="$1"
46+fi
47+
48+versions_equal
49+
50+for s in ${SOURCES[@]} ; do
51+ upload_package "$s"
52+done