~curtin-dev/curtin/trunk

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
#!/bin/sh

set -e
sourcename="curtin"

Usage() {
   cat <<EOF
Usage: [revno [output.tar.gz]]

  Create a tarball of revno (or tag) in output.tar.gz
  revno defaults to \`bzr revno\`.
  output filename defaults to:
   curtin-X.Y~bzrREVNO.tar.gz
  or, if a tag is given:
   curtin-TAG.tar.gz

  if UNCOMMITTED is set to non '0' in environment
  then uncommitted changes will be kept in the tarball.
EOF
}

TEMP_D=""
fail() { echo "$@" 1>&2; exit 1; }
cleanup() {
   [ -z "$TEMP_D" ] || rm -Rf "$TEMP_D"
}

export_uncommitted=""
if [ "${UNCOMMITTED:-0}" != "0" ]; then
   export_uncommitted="--uncommitted"
fi

[ "$1" = "-h" -o "$1" = "--help" ] && { Usage; exit 0; }

TEMP_D=$(mktemp -d)
trap cleanup EXIT

case "${1:-HEAD}" in
   tag:*)  version="${1#tag:}";;
   HEAD)   revno="$(bzr revno)"; revargs="-r $revno";;
   [0-9]*) revno="$1"          ; revargs="-r $1";;
esac
output="$2"

if [ -z "$version" ]; then
   bzr cat $revargs debian/changelog.trunk > "$TEMP_D/clog" ||
      fail "failed to extract debian/change.log.trunk at $revargs"

   clogver_o=$(sed -n '1s,.*(\([^)]*\)).*,\1,p' $TEMP_D/clog)
   clogver_upstream=${clogver_o%%-*}
   mmm=${clogver_o%%~*}
   version="$mmm~bzr$revno"
fi

if [ -z "$output" ]; then
   output="$sourcename-$version.tar.gz"
fi

bzr export ${export_uncommitted} \
   --format=tgz --root="$sourcename-${version}" $revargs $output
echo "wrote $output"