fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
fei.deng | 4475f64 | 2022-07-19 15:38:49 +0800 | [diff] [blame] | 3 | #version rule:MAJORVERSION.MINORVERSION.COMMIT_COUNT-g(COMMIT_ID) |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 4 | |
guoping.li | 77dcf20 | 2024-04-26 19:05:19 +0800 | [diff] [blame] | 5 | OUT_DIR= |
| 6 | if [ $# == 1 ];then |
| 7 | OUT_DIR=$1/ |
| 8 | mkdir -p "${OUT_DIR}src" |
| 9 | fi |
| 10 | |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 11 | BASE=$(pwd) |
| 12 | echo $BASE |
| 13 | |
| 14 | #major version |
| 15 | MAJORVERSION=1 |
| 16 | |
| 17 | #minor version |
fei.deng | d7c4c9c | 2022-10-18 19:01:19 +0800 | [diff] [blame] | 18 | MINORVERSION=3 |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 19 | |
fei.deng | b78aeac | 2022-11-22 23:28:49 +0800 | [diff] [blame] | 20 | #release version commit id |
| 21 | RELEASE_COMMIT_ID=d7c4c9c |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 22 | #modue name/ |
| 23 | MODULE_NAME=MM-module-name:avsync-lib |
| 24 | |
| 25 | #get all commit count |
fei.deng | b78aeac | 2022-11-22 23:28:49 +0800 | [diff] [blame] | 26 | COMMIT_COUNT=$(git rev-list $RELEASE_COMMIT_ID..HEAD --count) |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 27 | echo commit count $COMMIT_COUNT |
| 28 | |
| 29 | #get current commit id |
fei.deng | 4475f64 | 2022-07-19 15:38:49 +0800 | [diff] [blame] | 30 | COMMIT_ID=$(git rev-parse --short HEAD) |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 31 | echo commit id $COMMIT_ID |
| 32 | |
guoping.li | 77dcf20 | 2024-04-26 19:05:19 +0800 | [diff] [blame] | 33 | cp "src/aml_version.h.in" "${OUT_DIR}src/aml_version.h.tmp" |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 34 | #find the module name line |
guoping.li | 77dcf20 | 2024-04-26 19:05:19 +0800 | [diff] [blame] | 35 | MODULE_NAME_LINE=`sed -n '/\"MM-module-name/=' ${OUT_DIR}src/aml_version.h.tmp` |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 36 | #echo $VERSION_LINE |
| 37 | |
| 38 | #version rule string |
fei.deng | 4475f64 | 2022-07-19 15:38:49 +0800 | [diff] [blame] | 39 | VERSION_STRING=${MAJORVERSION}.${MINORVERSION}.${COMMIT_COUNT}-g${COMMIT_ID} |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 40 | |
| 41 | #update the original version |
| 42 | if [ ${MODULE_NAME_LINE} -gt 0 ]; then |
guoping.li | 77dcf20 | 2024-04-26 19:05:19 +0800 | [diff] [blame] | 43 | sed -i -e ${MODULE_NAME_LINE}s"/.*/\"${MODULE_NAME},version:${VERSION_STRING}\"\;/" ${OUT_DIR}src/aml_version.h.tmp |
| 44 | fi |
| 45 | |
| 46 | #if version.h already exist, compare the content, if it's the same, using the original file, avoid rebuild |
| 47 | if [ -e "${OUT_DIR}src/aml_version.h" ]; then |
| 48 | file1_hash=$(md5sum ${OUT_DIR}src/aml_version.h | awk '{print $1}') |
| 49 | file2_hash=$(md5sum ${OUT_DIR}src/aml_version.h.tmp | awk '{print $1}') |
| 50 | |
| 51 | if [ "$file1_hash" == "$file2_hash" ]; then |
| 52 | echo "version file content is the same" |
| 53 | rm ${OUT_DIR}src/aml_version.h.tmp |
| 54 | else |
| 55 | echo "version file content is not the same, use the tmp file" |
| 56 | mv ${OUT_DIR}src/aml_version.h.tmp ${OUT_DIR}src/aml_version.h |
| 57 | fi |
| 58 | else |
| 59 | echo "no version file, use the tmp version file" |
| 60 | mv ${OUT_DIR}src/aml_version.h.tmp ${OUT_DIR}src/aml_version.h |
fei.deng | 66b4e81 | 2022-04-14 12:23:01 +0800 | [diff] [blame] | 61 | fi |