saveVersion.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. unset LANG
  3. unset LC_CTYPE
  4. unset LC_TIME
  5. date=`date +'%F %T'`
  6. current_path=`pwd`
  7. case "`uname`" in
  8. Linux)
  9. abs_path=$(readlink -f $(dirname $0))
  10. ;;
  11. *)
  12. abs_path=`cd $(dirname $0); pwd`
  13. ;;
  14. esac
  15. cd $abs_path
  16. if [ -d .git ]; then
  17. revision=`git log -1 --pretty=format:"%H"`
  18. hostname=`hostname`
  19. url=`git remote -v | grep origin | grep fetch | awk '{print $2}'`
  20. case "`uname`" in
  21. Darwin)
  22. version=`cat pom.xml | head -n 10 | egrep -o '<version>5\..*?(-SNAPSHOT)?<' | cut -c 10- | awk -F'<' '{print $1}'`
  23. ;;
  24. *)
  25. version=`cat pom.xml | head -n 10 | grep -oP '<version>5\..*?(-SNAPSHOT)?<' | cut -c 10- | awk -F'<' '{print $1}'`
  26. ;;
  27. esac
  28. if [ "x${RELEASE}" != "x" ];then
  29. ec="echo $version | sed 's/SNAPSHOT/$RELEASE/g'"
  30. version=`eval $ec`
  31. fi
  32. branch=`git branch --no-color | grep '*' | awk '{print $2}'`
  33. else
  34. revision="Unknown"
  35. branch="Unknown"
  36. version="Unknown"
  37. url="file://$abs_path"
  38. fi
  39. cat << EOF | \
  40. sed -e "s/VERSION/$version/" -e "s/DATE/$date/" -e "s|URL|$url|" -e "s/REV/$hexVevision/" -e "s|BRANCH|$branch|" \
  41. > src/main/java/com/taobao/yugong/common/version/package-info.java
  42. /*
  43. * Generated by saveVersion.sh
  44. */
  45. @YuGongVersionAnnotation(version="VERSION", hexVersion="REV", branch="BRANCH", date="DATE", url="URL")
  46. package com.taobao.yugong.common.version;
  47. EOF
  48. cd $current_path