mirror of
https://github.com/ckolivas/lrzip.git
synced 2025-12-06 07:12:00 +01:00
Merge pull request #179 from pete4abw/git-describe-version
Use git describe to present version number to configure.ac
This commit is contained in:
commit
ce923dbd17
|
|
@ -1,8 +1,8 @@
|
|||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||
m4_define([v_maj], [0])
|
||||
m4_define([v_min], [6])
|
||||
m4_define([v_mic], [31])
|
||||
m4_define([v_maj], [m4_esyscmd_s([./util/gitdesc.sh major])])
|
||||
m4_define([v_min], [m4_esyscmd_s([./util/gitdesc.sh minor])])
|
||||
m4_define([v_mic],[m4_esyscmd_s([./util/gitdesc.sh micro])])
|
||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||
m4_define([v_v], m4_join([], v_min, v_mic))
|
||||
m4_define([v_ver], [v_maj.v_v])
|
||||
|
|
|
|||
105
util/gitdesc.sh
Executable file
105
util/gitdesc.sh
Executable file
|
|
@ -0,0 +1,105 @@
|
|||
#?bin/sh
|
||||
# Peter Hyman, pete@peterhyman.com
|
||||
# December 2020
|
||||
|
||||
# This program will return commit references based on Tags and Annotated Tags from git describe
|
||||
|
||||
usage() {
|
||||
cat >&2 <<EOF
|
||||
$(basename $0) command [-r]
|
||||
all - entire git describe
|
||||
commit - commit, omitting v
|
||||
tagrev - tag revision count
|
||||
major - major release version
|
||||
ninor - minor release version
|
||||
micro - micro release version
|
||||
version - M.mic + [tag release count-HEAD commit]
|
||||
-r -- get release tag only
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
# showw message and usage
|
||||
die() {
|
||||
echo "$1"
|
||||
usage
|
||||
}
|
||||
|
||||
# return variables
|
||||
# everything, with leading `v' and leading `g' for commits
|
||||
describe_tag=
|
||||
# abbreviated commit
|
||||
commit=
|
||||
# count of commits from last tag
|
||||
tagrev=
|
||||
# major version
|
||||
major=
|
||||
# minor version
|
||||
minor=
|
||||
# micro version
|
||||
micro=
|
||||
# get release or tag?
|
||||
tagopt="--tags"
|
||||
|
||||
# get whole commit and parse
|
||||
# if tagrev > 0 then add it and commit to micro version
|
||||
# Expected format is:
|
||||
# v#.###-g#######
|
||||
init() {
|
||||
describe_tag=$(git describe $tagopt --long --abbrev=7)
|
||||
describe_tag=${describe_tag/v/}
|
||||
describe_tag=${describe_tag/g/}
|
||||
commit=$(echo $describe_tag | cut -d- -f3)
|
||||
tagrev=$(echo $describe_tag | cut -d- -f2)
|
||||
version=$(echo $describe_tag | cut -d- -f1)
|
||||
micro=${version: -2}
|
||||
[ $tagrev -gt 0 ] && micro=$micro-$tagrev-$commit
|
||||
minor=${version: -3:1}
|
||||
major=$(echo $version | cut -d. -f1)
|
||||
}
|
||||
|
||||
[ ! $(which git) ] && die "Something very wrong: git not found."
|
||||
|
||||
[ $# -eq 0 ] && die "Must provide a command and optional argument."
|
||||
|
||||
# are we getting a release only?
|
||||
if [ $# -eq 2 ]; then
|
||||
if [ $2 = "-r" ]; then
|
||||
tagopt=""
|
||||
else
|
||||
die "Invalid option. Must be -r or nothing."
|
||||
fi
|
||||
fi
|
||||
|
||||
init
|
||||
|
||||
case "$1" in
|
||||
"all" )
|
||||
retval=$describe_tag
|
||||
;;
|
||||
"commit" )
|
||||
retval=$commit
|
||||
;;
|
||||
"tagrev" )
|
||||
retval=$tagrev
|
||||
;;
|
||||
"version" )
|
||||
retval=$version
|
||||
;;
|
||||
"major" )
|
||||
retval=$major
|
||||
;;
|
||||
"minor" )
|
||||
retval=$minor
|
||||
;;
|
||||
"micro" )
|
||||
retval=$micro
|
||||
;;
|
||||
* )
|
||||
die "Invalid command."
|
||||
;;
|
||||
esac
|
||||
|
||||
echo $retval
|
||||
|
||||
exit 0
|
||||
Loading…
Reference in a new issue