diff options
author | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2016-04-04 13:23:43 +1000 |
---|---|---|
committer | Samuel Mendoza-Jonas <sam@mendozajonas.com> | 2016-04-05 10:47:38 +1000 |
commit | b30199d97650117108a5b20236b851c12be803ac (patch) | |
tree | d1caad698261d147a58f5cab60cb7e876754a514 | |
parent | a23e966779d28215470906f06b4de49df10c8e6e (diff) | |
download | talos-petitboot-b30199d97650117108a5b20236b851c12be803ac.tar.gz talos-petitboot-b30199d97650117108a5b20236b851c12be803ac.zip |
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 <sam@mendozajonas.com>
-rwxr-xr-x | version.sh | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -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 |