mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 10:18:25 +00:00
42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Determine the version string to build into a binary.
|
|
# When building in the git repository, we can use the output
|
|
# of "git describe" which gives an unequivocal answer.
|
|
#
|
|
# Failing that, we use the contents of the VERSION file
|
|
# which has a set of references substituted into it by git.
|
|
# If we can find one which matches $v[0-9].* then we assume it's
|
|
# a version-number tag, else we just use the whole string.
|
|
# If there is more than one v[0-9].* tag, sort them and use the
|
|
# first. The insane arguments to the sort command are to ensure
|
|
# that, eg v2.64 comes before v2.63, but v2.63 comes before v2.63rc1
|
|
# and v2.63rc1 comes before v2.63test1
|
|
|
|
|
|
# Change directory to the toplevel source directory.
|
|
if test -z "$1" || ! test -d "$1" || ! cd "$1"; then
|
|
echo "$0: First argument $1 must be toplevel dir." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if which git >/dev/null 2>&1 && \
|
|
([ -d .git ] || grep '^gitdir:' .git >/dev/null 2>&1) && \
|
|
git describe >/dev/null 2>&1; then
|
|
git describe | sed 's/^v//'
|
|
elif grep '\$Format:%d\$' $1/VERSION >/dev/null 2>&1; then
|
|
# unsubstituted VERSION, but no git available.
|
|
echo UNKNOWN
|
|
else
|
|
vers=`cat $1/VERSION | sed 's/[(), ]/,/ g' | tr ',' '\n' | grep ^v[0-9]`
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "${vers}" | sort -k1.2,1.5Vr -k1.6,1.6 -k1.8,1.9Vr -k1.10,1.11Vr | head -n 1 | sed 's/^v//'
|
|
else
|
|
cat $1/VERSION
|
|
fi
|
|
fi
|
|
|
|
exit 0
|
|
|