]> git.ozlabs.org Git - petitboot/blobdiff - version.sh
discover: Null-terminate buffer in user_event_process()
[petitboot] / version.sh
index 4d96d11250beb4351c1d9a190f27533c6383116f..f3e6268ca344e263b669b089364e230e471c1124 100755 (executable)
@@ -5,23 +5,29 @@
 version=
 datefmt='%Y%m%d'
 
-if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then
-
-       # If available, use the git commit revision for the package version,
-       # and add a date prefix for easy comparisons.
+export GIT_DIR=$(basename $0)/.git/
 
-       date=$(git log --pretty=format:"%ct" -1 HEAD)
+if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then
 
        suffix=''
-       # Add a '-dirty' postfix for uncommitted changes.
+       # Add a '-dirty' suffix for uncommitted changes.
        if git diff-index HEAD | read dummy; then
                suffix=-dirty
        fi
 
-       version=$(printf "%($datefmt)T-g%s%s" ${date} ${head} ${suffix})
+       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})
+       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})
+       fi
 else
        # Default to current date and time.
-       version="$(date +dev-$datefmt)"
+       version="$(date +dev.$datefmt)"
 fi
 
 echo $version