• 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"
    Edited by 杨军
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment