Remove outdated TODO file
[petitboot] / version.sh
index f3e6268ca344e263b669b089364e230e471c1124..83cda7a01a816a9ba656ca15927fc33e00ee440f 100755 (executable)
@@ -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
 
@@ -15,19 +15,24 @@ if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then
                suffix=-dirty
        fi
 
-       if tag=$(git describe --tags --exact-match 2>/dev/null); then
-               # use a tag; remove any 'v' prefix from v<VERSION> tags
-               tag=${tag#v}
-               version=$(printf "%s%s" ${tag} ${suffix})
+       tag=$(git describe --tags 2>/dev/null)
+       version=$(printf "%s%s" ${tag} ${suffix})
+else
+       # 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
-               # Use the git commit revision for the package version, and add
-               # a date prefix for easy comparisons.
-               date=$(git log --pretty=format:"%ct" -1 HEAD)
-               version=$(printf "%($datefmt)T.g%s%s" ${date} ${head} ${suffix})
+               # Default to current date and time.
+               version="$(date +dev.$datefmt)"
        fi
-else
-       # Default to current date and time.
-       version="$(date +dev.$datefmt)"
 fi
 
 echo $version