version.sh: Unify version generation
[petitboot] / version.sh
1 #! /bin/bash
2 #
3 # version.sh: create a version string for use by configure.ac
4
5 version=
6 datefmt='%Y%m%d'
7
8 if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then
9
10         # If available, use the git commit revision for the package version,
11         # and add a date prefix for easy comparisons.
12
13         date=$(git log --pretty=format:"%ct" -1 HEAD)
14
15         suffix=''
16         # Add a '-dirty' postfix for uncommitted changes.
17         if git diff-index HEAD | read dummy; then
18                 suffix=-dirty
19         fi
20
21         version=$(printf "%($datefmt)T-g%s%s" ${date} ${head} ${suffix})
22 else
23         # Default to current date and time.
24         version="$(date +dev-$datefmt)"
25 fi
26
27 echo $version