From: Samuel Mendoza-Jonas Date: Mon, 4 Apr 2016 03:23:43 +0000 (+1000) Subject: version.sh: Fix in-tree case and allow external variables X-Git-Tag: v1.0.1~11 X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=b30199d97650117108a5b20236b851c12be803ac version.sh: Fix in-tree case and allow external variables "$(basename $0)" would return the name of the script, when what is needed is the name of the directory; use 'dirname' instead. If PETITBOOT_VERSION is set, as in a buildroot environment, use this variable instead of the default case. Signed-off-by: Samuel Mendoza-Jonas --- diff --git a/version.sh b/version.sh index f3e6268..bf91f70 100755 --- a/version.sh +++ b/version.sh @@ -5,7 +5,7 @@ version= datefmt='%Y%m%d' -export GIT_DIR=$(basename $0)/.git/ +export GIT_DIR=$(dirname $0)/.git/ if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then @@ -26,8 +26,21 @@ if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then version=$(printf "%($datefmt)T.g%s%s" ${date} ${head} ${suffix}) fi else - # Default to current date and time. - version="$(date +dev.$datefmt)" + # Check if a specific version is set, eg: by buildroot + if [ ! -z "$PETITBOOT_VERSION" ]; + then + # Full git hash + len=$(echo -n "${PETITBOOT_VERSION}" | wc -c) + if [[ ${len} == 40 ]]; then + version=`echo -n ${PETITBOOT_VERSION} | \ + sed "s/^\([0-9a-f]\{7\}\).*/\1/;"` + else + version="$PETITBOOT_VERSION" + fi + else + # Default to current date and time. + version="$(date +dev.$datefmt)" + fi fi echo $version