summaryrefslogtreecommitdiff
path: root/upload.sh
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2015-08-11 22:33:10 +0200
committerJoachim Breitner <mail@joachim-breitner.de>2015-08-11 22:33:10 +0200
commit9bba954176234dee62437b6ba2f1dc2cce000e33 (patch)
treefecaf2a08827646f1b049227a381681a5c0e726c /upload.sh
parent47378336f79d9655d686b943a73eeb34aef2b1db (diff)
downloadDHG_packages-9bba954176234dee62437b6ba2f1dc2cce000e33.tar.gz
New too upload
to upload a changes, tag it and push it.
Diffstat (limited to 'upload.sh')
-rwxr-xr-xupload.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/upload.sh b/upload.sh
new file mode 100755
index 000000000..1f22fb545
--- /dev/null
+++ b/upload.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+set -e
+
+if [ -z "$1" -o "$1" = "--help" ]
+then
+ echo "Usage: $0 foo.changes"
+ echo
+ echo "Signs the .changes file and the corresponding .dsc file in a temporary"
+ echo "location (to avoid touching the original files), uploads them to the archive"
+ echo "using \"dput ssh-upload\" and tags them in the repository and pushes the tag."
+ echo
+ echo "Checks that the distribution is not UNRELEASED and that the tag does"
+ echo "not exist already (by tagging first)."
+ echo
+ exit 1
+fi
+
+changes="$@"
+
+root="$(realpath --relative-to=$PWD "$(git rev-parse --show-toplevel)")"
+tmpdir=$root/uploads
+
+if [ -e $tmpdir ]
+then
+ echo "$tmpdir exists, please remove"
+ exit 1
+fi
+trap 'rm -rf "$tmpdir"' EXIT
+mkdir $tmpdir
+
+for c in $changes
+do
+ src="$(grep ^Source "$c"|grep-dctrl -s Source -n '' )"
+ $root/tag.pl $root/p/$src
+ dcmd cp -v "$c" "$tmpdir"
+ debsign "$tmpdir"/"$(basename "$c")"
+ dput ssh-upload "$tmpdir"/"$(basename "$c")"
+done
+git push --tags