#!/bin/bash #version rule:MAJORVERSION.MINORVERSION.COMMIT_COUNT-g(COMMIT_ID) OUT_DIR= if [ $# == 1 ];then OUT_DIR=$1/ mkdir -p "${OUT_DIR}src" fi BASE=$(pwd) echo $BASE #major version MAJORVERSION=1 #minor version MINORVERSION=3 #release version commit id RELEASE_COMMIT_ID=d7c4c9c #modue name/ MODULE_NAME=MM-module-name:avsync-lib #get all commit count COMMIT_COUNT=$(git rev-list $RELEASE_COMMIT_ID..HEAD --count) echo commit count $COMMIT_COUNT #get current commit id COMMIT_ID=$(git rev-parse --short HEAD) echo commit id $COMMIT_ID cp "src/aml_version.h.in" "${OUT_DIR}src/aml_version.h.tmp" #find the module name line MODULE_NAME_LINE=`sed -n '/\"MM-module-name/=' ${OUT_DIR}src/aml_version.h.tmp` #echo $VERSION_LINE #version rule string VERSION_STRING=${MAJORVERSION}.${MINORVERSION}.${COMMIT_COUNT}-g${COMMIT_ID} #update the original version if [ ${MODULE_NAME_LINE} -gt 0 ]; then sed -i -e ${MODULE_NAME_LINE}s"/.*/\"${MODULE_NAME},version:${VERSION_STRING}\"\;/" ${OUT_DIR}src/aml_version.h.tmp fi #if version.h already exist, compare the content, if it's the same, using the original file, avoid rebuild if [ -e "${OUT_DIR}src/aml_version.h" ]; then file1_hash=$(md5sum ${OUT_DIR}src/aml_version.h | awk '{print $1}') file2_hash=$(md5sum ${OUT_DIR}src/aml_version.h.tmp | awk '{print $1}') if [ "$file1_hash" == "$file2_hash" ]; then echo "version file content is the same" rm ${OUT_DIR}src/aml_version.h.tmp else echo "version file content is not the same, use the tmp file" mv ${OUT_DIR}src/aml_version.h.tmp ${OUT_DIR}src/aml_version.h fi else echo "no version file, use the tmp version file" mv ${OUT_DIR}src/aml_version.h.tmp ${OUT_DIR}src/aml_version.h fi