X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=scripts%2Fversion.sh;h=fbeb7df1f632b9089002784e5456e31385240101;hb=bfeef58669d84d5da58f5b20c1f4d476ca2c44e4;hp=36bb0ca287e02f9594176e7da1b0fa35c04bba25;hpb=5fc60a990b7c13ee4a1923df7e9ed14119402634;p=kconfig-frontends diff --git a/scripts/version.sh b/scripts/version.sh index 36bb0ca..fbeb7df 100755 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -1,20 +1,43 @@ #!/bin/sh -k_ver="$( head -n 1 .version |cut -d ' ' -f 1 )" -k_cset="$( head -n 1 .version |cut -d ' ' -f 2 )" -k_name="$( head -n 1 .version |cut -d ' ' -f 3- )" -kf_ver="$( tail -n 1 .version )" - -case "${k_ver}" in - *-rc*) k_ver="${k_ver}_$( printf "%-7.7s" "${k_cset}" )";; - *) ;; +plain=0 +internal=0 +case "${1}" in + "") ;; + --plain) plain=1;; + --internal) internal=1;; + *) printf "${0##*/}: unknow option '%s'\n" "${1}" >&2; exit 1;; esac -k_ver="$( echo "${k_ver}" |tr '-' '_' )" +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 -e 's/-rc.*//;' )" case "${kf_ver}" in - hg) kf_ver="-hg_$( hg id -i -r . )";; - "") kf_ver="";; - *) kf_ver="-${kf_ver}";; + git) kf_ver="-$( git rev-parse --short HEAD )" + k_ver_extra="$( printf "_%-7.7s" "${k_cset}" )" + ;; + *) k_ver_extra="";; esac -echo "${k_ver}${kf_ver}" +if [ "${plain}" -eq 1 ]; then + echo "${k_ver_plain}" +else + echo "${k_ver}${k_ver_extra}.${kf_ver}" +fi +