summaryrefslogtreecommitdiff
path: root/upload.sh
blob: 1f22fb5456d64bd1dcc0af0d74d47e8437dd201e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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