summaryrefslogtreecommitdiff
path: root/debian/new-upstream-snapshot
blob: 0e71d41a6b562b97c22b5ca7b3685a34a0a942a2 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh

Usage() {
   cat <<EOF
Usage: ${0##*/} trunk-dir [next-upstream-version]

   pull in new upstream snapshot from trunk-dir

   Leaves file 'new-changes.log'

   Example:
   $ ${0##*/} ../trunk
     # prepare bzr dir in . with new snapshot from ../trunk
   $ dch --edit
     # read changes in new-changes.log and write changelog
   $ debcommit
   $ dch --release
   $ debcommit --release
EOF
}
fail() { echo "$@" 1>&2; exit 1; }

name="cloud-init"
[ $# -eq 0 ] && { Usage 1>&2; exit 1; }
[ "$1" = "-h" -o "$1" = "--help" ] && { Usage; exit 0; }
trunk=$1
revno=${2:-tip}
uver=${3:-0.7.7} # the *next* upstream version

[ -d "$trunk" ] ||
   fail "trunk dir '$trunk' not a dir"
if [ "$revno" = "tip" ]; then
   revno=$(cd "$trunk" && bzr revno) ||
      fail "failed getting bzr revno from $trunk"
fi
pversion=$(dpkg-parsechangelog --show-field Version) ||
   fail "failed to read previous version with dpkg-parsechangelog"
prevno=$(echo "$pversion" | sed 's,.*bzr\([0-9]\+\)-.*,\1,') ||
   fail "fail reading previous bzr revision from previous version '$pversion'"
version=${uver}~bzr${revno}
tarball=${name}-${version}.tar.gz
t=../${name}_${version}.orig.tar.gz
if [ -f "$t" ]; then
   echo "using '$t' as tarball" 1>&2
   tarball="$t"
else
   echo "creating $tarball with bzr export" 1>&2
   bzr export --format=tgz "--revision=${revno}" "$tarball" "${trunk}" ||
     fail "failed exporting bzr in $trunk to $tarball"
fi
bzr merge-upstream "$tarball" "--version=${version}" ||
   fail "failed merge-upstream of $tarball at version=$version"

oldrev=$(($prevno+1))
( cd "$trunk" && bzr log -r "${oldrev}..${revno}" ) > new-changes.log ||
   fail "failed to get changes from ${oldrev}..$revno"

cat <<EOF
====
Now see ./new-changes.log for changes between $oldrev and $revno

then:
   $ dch --edit
     # read changes in new-changes.log and write changelog
   $ debcommit
   $ dch --release
   $ debcommit --release
   $ debuild -S
EOF