3
# upload a release file to Launchpad
5
# usage: lp-upload-release [--staging] bzr-1.2.3.tgz
9
if [ "$1" = "--staging" ]
12
server="staging.launchpad.net"
14
server="launchpad.net"
19
echo "usage: lp-upload-release VERSION FILENAME"
25
echo "please set $EMAIL to an address registered with Launchpad"
32
echo "$upfile is not a file"
37
if [ \! -f "$sigfile" ]
39
echo "couldn't find gpg signature $sigfile"
46
# parse the product and release number out of a filename like
47
# "bzr-foo-1.23rc1.tar.gz"
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}##*-}"
54
echo $basename $version $filetype
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)*}
59
for v in basename version filetype series
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
71
reported_md5=$( curl https://$server/$basename/$series/$version/+download/$filetail/+md5 )
72
expected_md5="$(md5sum "$upfile")"
73
expected_md5=${${(z)expected_md5}[1]}
75
for v in reported_md5 expected_md5
80
[ $reported_md5 = $expected_md5 ]