summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2010-09-04 20:54:53 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2010-09-04 20:56:25 +0200
commit7710f0c6e98544183bdb060f8b025f20110ed57a (patch)
treec8e78443458d10474a07c4a9699437079039a6bf /scripts
parentb7ff5c732efe890ea043cdbd00fde8653eca60eb (diff)
downloadembtoolkit-7710f0c6e98544183bdb060f8b025f20110ed57a.tar.gz
embtoolkit-7710f0c6e98544183bdb060f8b025f20110ed57a.tar.bz2
embtoolkit-7710f0c6e98544183bdb060f8b025f20110ed57a.tar.xz
Embtk: Add ability to set git revision as version when development version is used
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/setlocalversion66
1 files changed, 66 insertions, 0 deletions
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
new file mode 100755
index 0000000..62e3b55
--- /dev/null
+++ b/scripts/setlocalversion
@@ -0,0 +1,66 @@
+#!/bin/sh
+# Print additional version information for non-release trees.
+
+usage() {
+ echo "Usage: $0 [srctree]" >&2
+ exit 1
+}
+
+cd "${1:-.}" || usage
+
+# Check for git and a git repo.
+if head=`git rev-parse --verify HEAD 2>/dev/null`; then
+ # Do we have an untagged version?
+ if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then
+ if tag=`git describe 2>/dev/null`; then
+ echo $tag | awk -F- '{printf("%05d-%s", $(NF-1),$(NF))}'
+ fi
+ fi
+
+ # Are there uncommitted changes?
+ git update-index --refresh --unmerged > /dev/null
+ if git diff-index --name-only HEAD | grep -v "^scripts/package" \
+ | read dummy; then
+ printf '%s' -dirty
+ fi
+
+ # All done with git
+ exit
+fi
+
+# Check for mercurial and a mercurial repo.
+if hgid=`hg id 2>/dev/null`; then
+ tag=`printf '%s' "$hgid" | cut -d' ' -f2`
+
+ # Do we have an untagged version?
+ if [ -z "$tag" -o "$tag" = tip ]; then
+ id=`printf '%s' "$hgid" | sed 's/[+ ].*//'`
+ printf '%s%s' -hg "$id"
+ fi
+
+ # Are there uncommitted changes?
+ # These are represented by + after the changeset id.
+ case "$hgid" in
+ *+|*+\ *) printf '%s' -dirty ;;
+ esac
+
+ # All done with mercurial
+ exit
+fi
+
+# Check for svn and a svn repo.
+if rev=`svn info 2>/dev/null | grep '^Revision'`; then
+ rev=`echo $rev | awk '{print $NF}'`
+ changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
+
+ # Are there uncommitted changes?
+ if [ $changes != 0 ]; then
+ printf -- 'svn%s%s%s' "$rev" -dirty "$changes"
+ else
+ printf -- 'svn%s' "$rev"
+ fi
+
+ # All done with svn
+ exit
+fi
+