~bzr-pqm/bzr/bzr.dev

3778.3.1 by Martin Pool
Add a script to upload a download file to Ubuntu
1
#! /bin/zsh -e
2
3
# upload a release file to Launchpad 
4
#
5
# usage: lp-upload-release [--staging] bzr-1.2.3.tgz
6
7
setopt extended_glob
8
9
if [ "$1" = "--staging" ]
10
then
11
	shift
12
	server="staging.launchpad.net"
13
else
14
	server="launchpad.net"
15
fi
16
17
if [ $# -ne 1 ]
18
then
19
	echo "usage: lp-upload-release VERSION FILENAME"
20
	exit 2
21
fi
22
23
if [ -z "$EMAIL" ]
24
then
25
	echo "please set $EMAIL to an address registered with Launchpad"
26
	exit 2
27
fi
28
29
upfile="$1"
30
if [ \! -f "$1" ]
31
then
32
	echo "$upfile is not a file"
33
	exit 2
34
fi
35
36
sigfile="$upfile.sig"
37
if [ \! -f "$sigfile" ]
38
then
39
	echo "couldn't find gpg signature $sigfile"
40
	exit 2
41
fi
42
43
# just in case
44
gpg $sigfile
45
46
# parse the product and release number out of a filename like
47
# "bzr-foo-1.23rc1.tar.gz"
3778.3.4 by Martin Pool
lp-upload-release now handles names like bzr-1.8.tar.gz
48
49
# need to strip off the .tar too for .tar.gz files
50
headpart=${${upfile:r}%.tar}
51
filetype="${upfile#${headpart}}"
52
basename="${${headpart:t}%%-[0-9].*}"
53
version="${${headpart:t}##*-}"
3778.3.1 by Martin Pool
Add a script to upload a download file to Ubuntu
54
echo $basename $version $filetype
55
56
# bzr puts just the first part of the version into the series, e.g. 1.8 from 1.8rc1
57
series=${version%(rc|beta|alpha)*}
58
59
for v in basename version filetype series
60
do
61
	echo "$v=${(P)v}"
62
done
63
64
curl -u "$EMAIL" \
65
	https://$server/$basename/$series/$version/+adddownloadfile \
66
 	-F field.description="$basename $version source" \
67
 	-F field.filecontent="@${upfile}" \
68
 	-F field.contenttype=CODETARBALL \
69
 	-F field.actions.add=Upload
70
71
reported_md5=$( curl https://$server/$basename/$series/$version/+download/$filetail/+md5 )
72
expected_md5="$(md5sum "$upfile")"
73
expected_md5=${${(z)expected_md5}[1]}
74
75
for v in reported_md5 expected_md5
76
do
77
	echo "$v=${(P)v}"
78
done
79
80
[ $reported_md5 = $expected_md5 ]
81
82
# vim: sw=4