home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / scripts / setlocalversion < prev    next >
Encoding:
Text File  |  2008-12-24  |  1.5 KB  |  68 lines

  1. #!/bin/sh
  2. # Print additional version information for non-release trees.
  3.  
  4. usage() {
  5.     echo "Usage: $0 [srctree]" >&2
  6.     exit 1
  7. }
  8.  
  9. cd "${1:-.}" || usage
  10.  
  11. # Check for git and a git repo.
  12. if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then
  13.     # Do we have an untagged version?
  14.     if git name-rev --tags HEAD | grep -E '^HEAD[[:space:]]+(.*~[0-9]*|undefined)$' > /dev/null; then
  15.         if tag=`git describe 2>/dev/null`; then
  16.             echo $tag | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}'
  17.         else
  18.             printf '%s%s' -g $head
  19.         fi
  20.     fi
  21.  
  22.     # Are there uncommitted changes?
  23.     git update-index --refresh --unmerged > /dev/null
  24.     if git diff-index --name-only HEAD | grep -v "^scripts/package" \
  25.         | read dummy; then
  26.         printf '%s' -dirty
  27.     fi
  28.  
  29.     # All done with git
  30.     exit
  31. fi
  32.  
  33. # Check for mercurial and a mercurial repo.
  34. if hgid=`hg id 2>/dev/null`; then
  35.     tag=`printf '%s' "$hgid" | cut -d' ' -f2`
  36.  
  37.     # Do we have an untagged version?
  38.     if [ -z "$tag" -o "$tag" = tip ]; then
  39.         id=`printf '%s' "$hgid" | sed 's/[+ ].*//'`
  40.         printf '%s%s' -hg "$id"
  41.     fi
  42.  
  43.     # Are there uncommitted changes?
  44.     # These are represented by + after the changeset id.
  45.     case "$hgid" in
  46.         *+|*+\ *) printf '%s' -dirty ;;
  47.     esac
  48.  
  49.     # All done with mercurial
  50.     exit
  51. fi
  52.  
  53. # Check for svn and a svn repo.
  54. if rev=`svn info 2>/dev/null | grep '^Revision'`; then
  55.     rev=`echo $rev | awk '{print $NF}'`
  56.     changes=`svn status 2>/dev/null | grep '^[AMD]' | wc -l`
  57.  
  58.     # Are there uncommitted changes?
  59.     if [ $changes != 0 ]; then
  60.         printf -- '-svn%s%s' "$rev" -dirty
  61.     else
  62.         printf -- '-svn%s' "$rev"
  63.     fi
  64.  
  65.     # All done with svn
  66.     exit
  67. fi
  68.