diff options
Diffstat (limited to 'misc/tools/kconfig-frontends/scripts/version.sh')
-rwxr-xr-x | misc/tools/kconfig-frontends/scripts/version.sh | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/misc/tools/kconfig-frontends/scripts/version.sh b/misc/tools/kconfig-frontends/scripts/version.sh new file mode 100755 index 000000000..57f699c6a --- /dev/null +++ b/misc/tools/kconfig-frontends/scripts/version.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +plain=0 +internal=0 +case "${1}" in + "") ;; + --plain) plain=1;; + --internal) internal=1;; + *) printf "${0##*/}: unknow option '%s'\n" "${1}" >&2; exit 1;; +esac +if [ ${plain} -ne 0 -a ${internal} -ne 0 ]; then + printf "Can't print both plain and internal" >&2 + printf " versions at the same time\n" >&2 + exit 1 +fi + +ver_file="${0%/*}/../.version" +k_ver="$( head -n 1 "${ver_file}" |cut -d ' ' -f 1 )" +k_cset="$( head -n 1 "${ver_file}" |cut -d ' ' -f 2 )" +k_name="$( head -n 1 "${ver_file}" |cut -d ' ' -f 3- )" +kf_ver="$( tail -n 1 "${ver_file}" )" + +if [ ${internal} -ne 0 ]; then + printf "%s\n" "${kf_ver}" + exit 0 +fi + +k_ver_plain="$( printf "%s" "${k_ver}" \ + |sed -r -e 's/-rc.*//;' )" + +case "${kf_ver}" in + hg) kf_ver="hg_$( hg id -i -r . )" + k_ver_extra="$( printf "_%-7.7s" "${k_cset}" )" + ;; + *) k_ver_extra="";; +esac + +if [ "${plain}" -eq 1 ]; then + echo "${k_ver_plain}" +else + echo "${k_ver}${k_ver_extra}-${kf_ver}" +fi + |