~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Martin Pool
  • Date: 2005-04-28 07:24:55 UTC
  • Revision ID: mbp@sourcefrog.net-20050428072453-7b99afa993a1e549
todo

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
 
 
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
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