diff --git a/libs/libcommon/src/create_revision.sh b/libs/libcommon/src/create_revision.sh index c47ebfe217c28d67349b4b750b63d3115286aa37..db28d0e535072e48ec43725d63961b65a11c8b16 100755 --- a/libs/libcommon/src/create_revision.sh +++ b/libs/libcommon/src/create_revision.sh @@ -1,6 +1,11 @@ #!/bin/bash -source "$(dirname "$0")/get_revision_lib.sh" +# отрезает суффикс от тегов мобильной метрики, чтобы привести к числу +# фильтрует теги, не являющиеся релизными тегами +function tag_filter +{ + sed 's/-mobmet//g' | grep -E "^[0-9]{5,8}$" +} if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then echo "usage: create_revision.sh out_file_path [--use_dbms_tcp_protocol_version]" @@ -25,14 +30,21 @@ then " > $out_file else + # GIT + git fetch --tags; # берем последний тэг из текущего коммита - revision=$(get_revision) - + revision=$(git tag --points-at HEAD 2> /dev/null | tag_filter | tail -1) + # или ближайший тэг если в данном комите нет тэгов + if [[ "$revision" = "" ]]; then + revision=$( ( git describe --tags) | cut -d "-" -f 1 | tag_filter ) + fi + if [[ "$revision" == "" ]]; then - # в крайнем случае выбирем любую версию как версию демона - # нужно для stash или неполноценной копии репозитория - revision="77777" + # в крайнем случае выбирем любую версию как версию демона + # нужно для stash или неполноценной копии репозитория + revision="77777" fi + revision=$(echo $revision | sed 's/\([0-9]*\)[^0-9]*/\1/') echo " #ifndef REVISION diff --git a/libs/libcommon/src/get_revision_lib.sh b/libs/libcommon/src/get_revision_lib.sh deleted file mode 100644 index b4a270f652e714a084c6d7a347c71cc1a64c4693..0000000000000000000000000000000000000000 --- a/libs/libcommon/src/get_revision_lib.sh +++ /dev/null @@ -1,10 +0,0 @@ -# Filter non-release tags -function tag_filter { - grep -E "^v1\.1\.[0-9]{5}-testing$" -} - -# Get last revision number -function get_revision { - git fetch --tags - git tag | tag_filter | tail -1 | sed 's/^v1\.1\.\(.*\)-testing$/\1/' -} diff --git a/release b/release index 2b6672fab145be75a2db12db087a0b531433e03b..5646021c0b42cf2eec5cd30396be72754e7da6f9 100755 --- a/release +++ b/release @@ -1,6 +1,6 @@ #!/bin/bash -source "$(dirname "$0")/release_lib.sh" +source release_lib.sh CONTROL=debian/control CHLOG=debian/changelog diff --git a/release_lib.sh b/release_lib.sh index 8cb55e4edc5e708e4574fa8730d6ca0600018e54..a6a0dcff6e73199894f88612544ebd60e8d109db 100644 --- a/release_lib.sh +++ b/release_lib.sh @@ -1,4 +1,8 @@ -source "$(dirname "$0")/libs/libcommon/src/get_revision_lib.sh" +# фильтрует теги, не являющиеся релизными тегами +function tag_filter +{ + grep -E "^v1\.1\.[0-9]{5}-testing$" +} function add_daemon_impl { local daemon=$1 @@ -54,7 +58,10 @@ function make_control { # Генерируем номер ревизии. # выставляются переменные окружения REVISION, AUTHOR function gen_revision_author { - REVISION=$(get_revision) + # GIT + git fetch --tags + + REVISION=$(git tag | tag_filter | tail -1 | sed 's/^v1\.1\.\(.*\)-testing$/\1/') if [[ $STANDALONE != 'yes' ]] then