mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-25 22:18:07 +00:00 
			
		
		
		
	Use .gitreview defaultbranch setting to determine the mainline branch.
This allows the script to be used against other directories which might
not be on the same defaultbranch.  This can be used by CI scripts to
report the testsuite version being used:
./build_tools/make_version ${TESTSUITE_DIR}
Change-Id: Ifdad4a9d8a26138c41bc6b630ecc3e34ea1c2758
		
	
		
			
				
	
	
		
			191 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| AWK=${AWK:-awk}
 | |
| GIT=${GIT:-git}
 | |
| GREP=${GREP:-grep}
 | |
| 
 | |
| if [ -f ${1}/.version ]; then
 | |
|     cat ${1}/.version
 | |
| elif [ -d ${1}/.svn ]; then
 | |
|     PARTS=`LANG=C svn info ${1} | ${GREP} URL | ${AWK} '{print $2;}' | sed -e 's:^.*/svn/asterisk/::' | sed -e 's:/: :g'`
 | |
|     BRANCH=0
 | |
|     TEAM=0
 | |
|     TAG=0
 | |
|     FEATURE=0
 | |
| 
 | |
|     REV=`svnversion -c ${1} | cut -d: -f2`
 | |
| 
 | |
|     INTEGRATED=`LANG=C svn pg automerge-propname ${1}`
 | |
|     if [ -z "${INTEGRATED}" ] ; then
 | |
|         INTEGRATED=svnmerge-integrated
 | |
|     fi
 | |
| 
 | |
|     BASE=`LANG=C svn pg ${INTEGRATED} ${1} | cut -d: -f1`
 | |
| 
 | |
|     if [ "${PARTS}" = "trunk" ] ; then
 | |
|         echo SVN-trunk-r${REV}
 | |
|         exit 0
 | |
|     fi
 | |
| 
 | |
|     for PART in $PARTS ; do
 | |
|         if [ ${TAG} != 0 ] ; then
 | |
|             if [ "${PART}" = "autotag_for_be" ] ; then
 | |
|                 continue
 | |
|             fi
 | |
|             if [ "${PART}" = "autotag_for_sx00i" ] ; then
 | |
|                 continue
 | |
|             fi
 | |
|             RESULT="${PART}"
 | |
|             break
 | |
|         fi
 | |
| 
 | |
|         if [ ${BRANCH} != 0 ] ; then
 | |
|             RESULT="${RESULT}-${PART}"
 | |
|             if [ ${FEATURE} != 0 ] ; then
 | |
|                 RESULT="${RESULT}-${FEATURE_NAME}"
 | |
|             fi
 | |
|             break
 | |
|         fi
 | |
| 
 | |
|         if [ ${TEAM} != 0 ] ; then
 | |
|             if [ -z "${RESULT}" ] ; then
 | |
|                 RESULT="${PART}"
 | |
|             else
 | |
|                 RESULT="${RESULT}-${PART}"
 | |
|             fi
 | |
|             continue
 | |
|         fi
 | |
| 
 | |
|         if [ "${PART}" = "certified" ] ; then
 | |
|             FEATURE=1
 | |
|             FEATURE_NAME="cert"
 | |
|             continue
 | |
|         fi
 | |
| 
 | |
|         if [ "${PART}" = "branches" ] ; then
 | |
|             BRANCH=1
 | |
|             RESULT="branch"
 | |
|             continue
 | |
|         fi
 | |
| 
 | |
|         if [ "${PART}" = "tags" ] ; then
 | |
|             TAG=1
 | |
|             continue
 | |
|         fi
 | |
| 
 | |
|         if [ "${PART}" = "team" ] ; then
 | |
|             TEAM=1
 | |
|             continue
 | |
|         fi
 | |
|     done
 | |
| 
 | |
|     if [ ${TAG} != 0 ] ; then
 | |
|         echo ${RESULT}
 | |
|     else
 | |
|         echo SVN-${RESULT}-r${REV}${BASE:+-${BASE}}
 | |
|     fi
 | |
| elif [ -d ${1}/.git ]; then
 | |
|     if [ -z ${GIT} ]; then
 | |
|         GIT="git"
 | |
|     fi
 | |
| 
 | |
|     if ! command -v ${GIT} >/dev/null 2>&1; then
 | |
|         echo "UNKNOWN__and_probably_unsupported"
 | |
|         exit 1
 | |
|     fi
 | |
| 	cd ${1}
 | |
| 
 | |
|     # If the first log commit messages indicates that this is checked into
 | |
|     # subversion, we'll just use the SVN- form of the revision.
 | |
|     MODIFIED=""
 | |
|     SVN_REV=`${GIT} log --pretty=full -1 | ${GREP} -F "git-svn-id:" | sed -e "s/.*\@\([^\s]*\)\s.*/\1/g"`
 | |
|     if [ -z "$SVN_REV" ]; then
 | |
|         MAINLINE_BRANCH=$(git config -f .gitreview --get gerrit.defaultbranch)
 | |
|         VERSION=`${GIT} describe --long --always --tags --dirty=M 2> /dev/null`
 | |
|         if [ $? -ne 0 ]; then
 | |
|             if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
 | |
|                 MODIFIED="M"
 | |
|             fi
 | |
|             # Some older versions of git do not support all the above
 | |
|             # options.
 | |
|             VERSION=`${GIT} rev-parse --short --verify HEAD`${MODIFIED}
 | |
|         fi
 | |
|         echo GIT-${MAINLINE_BRANCH}-${VERSION}
 | |
|     else
 | |
|         PARTS=`LANG=C ${GIT} log --pretty=full | ${GREP} -F "git-svn-id:" | head -1 | ${AWK} '{print $2;}' | sed -e s:^.*/svn/$2/:: | sed -e 's:/: :g' | sed -e 's/@.*$//g'`
 | |
|         BRANCH=0
 | |
|         TEAM=0
 | |
|         TAG=0
 | |
|         FEATURE=0
 | |
| 
 | |
|         if [ "`${GIT} ls-files -m | wc -l`" != "0" ]; then
 | |
|             MODIFIED="M"
 | |
|         fi
 | |
| 
 | |
|         for PART in $PARTS ; do
 | |
|             if [ ${TAG} != 0 ] ; then
 | |
|                 if [ "${PART}" = "autotag_for_be" ] ; then
 | |
|                     continue
 | |
|                 fi
 | |
|                 if [ "${PART}" = "autotag_for_sx00i" ] ; then
 | |
|                     continue
 | |
|                 fi
 | |
|                 RESULT="${PART}"
 | |
|                 break
 | |
|             fi
 | |
| 
 | |
|             if [ ${BRANCH} != 0 ] ; then
 | |
|                 RESULT="${RESULT}-${PART}"
 | |
|                 if [ ${FEATURE} != 0 ] ; then
 | |
|                     RESULT="${RESULT}-${FEATURE_NAME}"
 | |
|                 fi
 | |
|                 break
 | |
|             fi
 | |
| 
 | |
|             if [ ${TEAM} != 0 ] ; then
 | |
|                 if [ -z "${RESULT}" ] ; then
 | |
|                     RESULT="${PART}"
 | |
|                 else
 | |
|                     RESULT="${RESULT}-${PART}"
 | |
|                 fi
 | |
|                 continue
 | |
|             fi
 | |
| 
 | |
|             if [ "${PART}" = "certified" ] ; then
 | |
|                 FEATURE=1
 | |
|                 FEATURE_NAME="cert"
 | |
|                 continue
 | |
|             fi
 | |
| 
 | |
|             if [ "${PART}" = "branches" ] ; then
 | |
|                 BRANCH=1
 | |
|                 RESULT="branch"
 | |
|                 continue
 | |
|             fi
 | |
| 
 | |
|             if [ "${PART}" = "tags" ] ; then
 | |
|                 TAG=1
 | |
|                 continue
 | |
|             fi
 | |
| 
 | |
|             if [ "${PART}" = "team" ] ; then
 | |
|                 TEAM=1
 | |
|                 continue
 | |
|             fi
 | |
| 
 | |
|             if [ "${PART}" = "trunk" ]; then
 | |
|                 echo SVN-trunk-r${SVN_REV}${MODIFIED}
 | |
|                 exit 0
 | |
|             fi
 | |
|         done
 | |
| 
 | |
|         if [ ${TAG} != 0 ] ; then
 | |
|             echo ${RESULT}
 | |
|         else
 | |
|             echo SVN-${RESULT##-}-r${SVN_REV}${MODIFIED}
 | |
|         fi
 | |
|     fi
 | |
| else
 | |
|     echo "UNKNOWN__and_probably_unsupported"
 | |
| fi
 |