~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to tools/packaging/lp-upload-release

  • Committer: Martin Pool
  • Date: 2008-10-20 08:09:33 UTC
  • mto: This revision was merged to the branch mainline in revision 3787.
  • Revision ID: mbp@sourcefrog.net-20081020080933-xba7zw9ffozm6brl
Build zip file from 'make dist' and document this; also tweak standard announcement mail

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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"
 
48
filetype="${upfile:e}"
 
49
filetail=${upfile:t}
 
50
basename="${${upfile:t}%%-[0-9].*}"
 
51
version="${${upfile:t:r}##*-}"
 
52
echo $basename $version $filetype
 
53
 
 
54
# bzr puts just the first part of the version into the series, e.g. 1.8 from 1.8rc1
 
55
series=${version%(rc|beta|alpha)*}
 
56
 
 
57
for v in basename version filetype series
 
58
do
 
59
        echo "$v=${(P)v}"
 
60
done
 
61
 
 
62
curl -u "$EMAIL" \
 
63
        https://$server/$basename/$series/$version/+adddownloadfile \
 
64
        -F field.description="$basename $version source" \
 
65
        -F field.filecontent="@${upfile}" \
 
66
        -F field.contenttype=CODETARBALL \
 
67
        -F field.actions.add=Upload
 
68
 
 
69
reported_md5=$( curl https://$server/$basename/$series/$version/+download/$filetail/+md5 )
 
70
expected_md5="$(md5sum "$upfile")"
 
71
expected_md5=${${(z)expected_md5}[1]}
 
72
 
 
73
for v in reported_md5 expected_md5
 
74
do
 
75
        echo "$v=${(P)v}"
 
76
done
 
77
 
 
78
[ $reported_md5 = $expected_md5 ]
 
79
 
 
80
# vim: sw=4