summaryrefslogtreecommitdiff
path: root/tools/read-version
blob: 3df0889b1b84e3e851689ed3d869d64ff2c2588e (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
#!/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"
}
fail() { echo "$0:" "$@" 1>&2; exit 1; }

if ! find_root; then
    fail "Unable to locate 'setup.py' file that should " \
         "exist in the cloud-init root directory."
fi

CHNG_LOG="$ROOT_DIR/ChangeLog"

if [ ! -e "$CHNG_LOG" ]; then
    fail "Unable to find 'ChangeLog' file located at '$CHNG_LOG'"
fi

VERSION=$(sed -n '/^[0-9]\+[.][0-9]\+[.][0-9]\+:/ \
                  {s/://; p; :a;n; ba; }' "$CHNG_LOG") &&
   [ -n "$VERSION" ] ||
   fail "failed to get version from '$CHNG_LOG'"
echo "$VERSION"