6
6
# License, v. 2.0. If a copy of the MPL was not distributed with this
7
7
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
8
9
- # Usage:
10
- #
11
- # ./tools/bump-lib-versions.sh Kea-1.9.1 Kea-1.9.2
12
-
13
9
set -eu
14
10
15
11
# Define some ANSI color codes.
26
22
# shellcheck disable=SC2016
27
23
print_usage () {
28
24
printf \
29
- ' Usage: %s {{options}} $old_release_tag $ new_release_tag
25
+ ' Usage: %s {{options}} [$ new_release_tag]
30
26
Options:
31
27
[-d|--debug] enable debug mode, showing every executed command
32
28
[-h|--help] print usage (this text)
33
29
Example:
34
- ./tools/bump_lib_versions.sh Kea-1.9.1 Kea-1.9.2
30
+ ./tools/bump_lib_versions.sh Kea-1.2.3
35
31
' \
36
32
" $( basename " ${0} " ) "
37
33
}
@@ -52,20 +48,13 @@ while test ${#} -gt 0; do
52
48
' -h' |' --help' ) print_usage; exit 0 ;;
53
49
54
50
* )
55
- test -z " ${old_release_tag+x} " && old_release_tag=${1} && shift && continue
56
51
test -z " ${new_release_tag+x} " && new_release_tag=${1} && shift && continue
57
52
58
53
# Unrecognized argument
59
54
error " Unrecognized argument '${1} '" ;;
60
55
esac ; shift
61
56
done
62
57
63
- # Check for mandatory arguments.
64
- # Expressions don't expand in single quotes, use double quotes for that. [SC2016]
65
- # shellcheck disable=SC2016
66
- test -z " ${old_release_tag+x} " && error ' $old_release_tag is mandatory'
67
- # shellcheck disable=SC2016
68
- test -z " ${new_release_tag+x} " && error ' $new_release_tag is mandatory'
69
58
70
59
is_stable_release () {
71
60
version_number=$( printf ' %s' " ${1} " | cut -d . -f2)
@@ -86,6 +75,19 @@ find_latest_stable_release_tag() {
86
75
done
87
76
}
88
77
78
+ old_release_tag=$( git describe --tags HEAD | grep -Eo ' Kea-[0-9]+\.[0-9]+\.[0-9]+' )
79
+ if test -z " ${new_release_tag+x} " ; then
80
+ patch_version=$( echo " ${old_release_tag} " | grep -Eo ' [0-9]+$' )
81
+ patch_version=$(( patch_version + 1 ))
82
+ new_release_tag=$( echo " ${old_release_tag} " | sed " s/.[0-9]*$/.${patch_version} /" )
83
+ printf ' No version provided. Assuming that the target version is "%s".' " ${new_release_tag} "
84
+ if test -t 1; then
85
+ printf ' Press any key to continue... '
86
+ read -r _
87
+ fi
88
+ printf ' \n'
89
+ fi
90
+
89
91
is_old_tag_stable_release=$( is_stable_release " ${old_release_tag} " && printf true || printf false)
90
92
is_new_tag_stable_release=$( is_stable_release " ${new_release_tag} " && printf true || printf false)
91
93
0 commit comments