diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2011-08-31 23:35:02 +0200 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2011-09-17 08:14:11 +0200 |
commit | f082c7c5cf72296566dcf92bba4fcb4c95f2186f (patch) | |
tree | 755b968c86505d8746ba179a2e3751d0f0415703 /support/scripts/setlocalversion | |
parent | 3e304db0f0ef583efb250a19663259bb6dc60c93 (diff) | |
download | buildroot-novena-f082c7c5cf72296566dcf92bba4fcb4c95f2186f.tar.gz buildroot-novena-f082c7c5cf72296566dcf92bba4fcb4c95f2186f.zip |
support: move scripts/ to a new support/ directory
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'support/scripts/setlocalversion')
-rwxr-xr-x | support/scripts/setlocalversion | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/support/scripts/setlocalversion b/support/scripts/setlocalversion new file mode 100755 index 000000000..8d6fe909f --- /dev/null +++ b/support/scripts/setlocalversion @@ -0,0 +1,72 @@ +#!/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 --short 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))}' + else + printf '%s%s' -g $head + fi + fi + + # Is this git on svn? + if git config --get svn-remote.svn.url >/dev/null; then + printf -- '-svn%s' "`git svn find-rev $head`" + 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=`LANG=C svn info 2>/dev/null | grep '^Last Changed Rev'`; then + rev=`echo $rev | awk '{print $NF}'` + changes=`LANG=C svn status 2>/dev/null | grep '^[AMD]' | wc -l` + + # Are there uncommitted changes? + if [ $changes != 0 ]; then + printf -- '-svn%s%s' "$rev" -dirty + else + printf -- '-svn%s' "$rev" + fi + + # All done with svn + exit +fi |