X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=version.sh;h=bf91f707147d90c086c49bf51b39b80c2e4be3f7;hp=eed8d3a72f4981761614b215df49a995d1e3a3ab;hb=47c55b245aab729a9c23bfb830329022c7b25d83;hpb=e39ce1c5ae8bd4bcd5a6e6997d994919f402fcf6 diff --git a/version.sh b/version.sh index eed8d3a..bf91f70 100755 --- a/version.sh +++ b/version.sh @@ -3,32 +3,44 @@ # version.sh: create a version string for use by configure.ac version= +datefmt='%Y%m%d' -if head=$(git rev-parse --short --verify HEAD 2>/dev/null); then +export GIT_DIR=$(dirname $0)/.git/ - # If available, use the git commit revision for the package version. - - # Add a date prefix for easy reading. - # date='2010-11-30 16:36:09 -0800' - - date=$(git log --pretty=format:"%ci" -1 HEAD) - date=${date##20} - date=${date%%:[0-9][0-9] *} - date=${date//-/.} - date=${date// /.} - date=${date//:/.} - - version=$(printf '%s-%s%s' ${date} g ${head}) - - # Add a '-dirty' postfix for uncommitted changes. +if head=$(git rev-parse --short=8 --verify HEAD 2>/dev/null); then + suffix='' + # Add a '-dirty' suffix for uncommitted changes. if git diff-index HEAD | read dummy; then - version=`printf '%s%s' ${version} -dirty` + suffix=-dirty fi -else - # Default to current date and time. - version="dev-$(date +%y.%m.%d-%H.%M.%S)" + if tag=$(git describe --tags --exact-match 2>/dev/null); then + # use a tag; remove any 'v' prefix from v 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 + # 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