summaryrefslogtreecommitdiff
path: root/tools/make-tarball
blob: 47979f5b1c397cd3820fff1e83b2ed7bd63b0159 (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
#!/bin/sh
set -e

find_root() {
   local topd
   if [ -z "${CLOUD_INIT_TOP_D}" ]; then
      topd=$(cd "$(dirname "${0}")" && cd .. && pwd)
   else
      topd=$(cd "${CLOUD_INIT_TOP_D}" && pwd)
   fi
   [ $? -eq 0 -a -f "${topd}/setup.py" ] || return
   ROOT_DIR="$topd"
}

if ! find_root; then
    echo "Unable to locate 'setup.py' file that should" \
          "exist in the cloud-init root directory." 1>&2
    exit 1;
fi

if [ ! -z "$1" ]; then
    ARCHIVE_FN="$1"
else
    REVNO=$(bzr revno $ROOT_DIR)
    VERSION=$($ROOT_DIR/tools/read-version)
    ARCHIVE_FN="$PWD/cloud-init-$VERSION~bzr$REVNO.tar.gz"
fi

FILES=$(cd $ROOT_DIR && bzr ls --versioned --recursive)
echo "$FILES" | tar czf $ARCHIVE_FN \
                -C "$ROOT_DIR" \
                --transform "s,^,cloud-init-$VERSION~bzr$REVNO/," \
                --no-recursion --files-from -

echo "$ARCHIVE_FN"