-
- version.h.template文件的内容如下:
#ifndef VERSION_H #define VERSION_H #define VERSION_NUM $NUMVER #define VERSION_STR "$FULL_VERSION" char *sys_version_get(void); #endif // VERSION_
-
使用脚本函数的获取GIT版本号的代码。
#!/bin/bash WORKPATH=`pwd` BASEPATH=`dirname $0` echo "BASEPATH=$BASEPATH" cd "$BASEPATH" function gitver() { WORKPATH=`pwd` VERHEAD="HEAD" VERBRANCH="origin/master" if [ $# = 0 ]; then BASEPATH=`dirname $0` elif [ $# = 1 ]; then BASEPATH="$1" elif [ $# = 2 ]; then BASEPATH="$1" VERBRANCH="$2" elif [ $# = 3 ]; then BASEPATH="$1" VERBRANCH="$2" VERHEAD="$3" else BASEPATH="$1" VERBRANCH="$2" VERHEAD="$3" fi cd "$BASEPATH" git rev-list $VERHEAD | sort > config.git-hash LOCALVER=`wc -l config.git-hash | awk '{print $1}'` if [ $LOCALVER \> 1 ] ; then NUMVER=`git rev-list "$VERBRANCH" | sort | join config.git-hash - | wc -l | awk '{print $1}'` VER=$NUMVER if [ $NUMVER != $LOCALVER ] ; then VER="$NUMVER-$(($LOCALVER-$NUMVER))" fi if git status | grep -q "modified:" ; then VER="${NUMVER}M" fi VER="$VER-$(git rev-list HEAD -n 1 | cut -c 1-7)" GIT_VERSION=r$VER else GIT_VERSION= VER="x" fi rm -f config.git-hash export GITVERSION=$GIT_VERSION cd "$WORKPATH" return $NUMVER } gitver "." "origin/master" "HEAD" cat version.js.template | sed "s/\$FULL_VERSION/$GIT_VERSION/g" | sed "s/\$NUMVER/$NUMVER/g" > "app/version.js" echo "Generated version.js" echo "GIT_VERSION=$GIT_VERSION" echo "LOCALVER=$LOCALVER" echo "VER=$VER" #echo $GIT_VERSION cd "$WORKPATH"
Please register or sign in to comment