setlocalversion 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/bin/sh
  2. # Print additional version information for non-release trees.
  3. usage() {
  4. echo "Usage: $0 [srctree]" >&2
  5. exit 1
  6. }
  7. cd "${1:-.}" || usage
  8. # Check for git and a git repo.
  9. if head=`git rev-parse --verify HEAD 2>/dev/null`; then
  10. # Do we have an untagged version?
  11. if git name-rev --tags HEAD | \
  12. grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then
  13. (git describe || git describe --tags || git describe --all --long) \
  14. 2>/dev/null | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
  15. fi
  16. # Are there uncommitted changes?
  17. git update-index --refresh --unmerged > /dev/null
  18. if git diff-index --name-only HEAD | grep -v "^scripts/package" \
  19. | read dummy; then
  20. printf '%s' -dirty
  21. fi
  22. # Is this git on svn?
  23. if git config --get svn-remote.svn.url >/dev/null; then
  24. printf -- '-svn%s' "`git svn find-rev $head`"
  25. fi
  26. fi
  27. # Check for svn and a svn repo.
  28. if rev=`svn info 2>/dev/null` ; then
  29. rev=`echo "${rev}" | grep '^Revision' | awk '{print $NF}'`
  30. printf -- '-svn%s' $rev
  31. fi
  32. # Check for any localversion-* files
  33. printf '%s' "`cat localversion-* 2>/dev/null`"