]> git.sur5r.net Git - kconfig-frontends/blobdiff - scripts/version.sh
buildsystem: don't use recursive make for libs
[kconfig-frontends] / scripts / version.sh
index bbfc0e7cd4f8a4fd3694db81b8bc127293580239..fbeb7df1f632b9089002784e5456e31385240101 100755 (executable)
@@ -1,33 +1,43 @@
 #!/bin/sh
 
-if [ "${1}" = "--plain" ]; then
-    plain=1
-else
-    plain=0
+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
 
-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                   )"
+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}"                   )"
 
-k_ver_plain="$( echo "${k_ver}" |sed -r -e 's/-rc[[:digit:]]+$//;' )"
+if [ ${internal} -ne 0 ]; then
+    printf "%s\n" "${kf_ver}"
+    exit 0
+fi
 
-case "${k_ver}" in
-    *-rc*)  k_ver_extra="_$( printf "%-7.7s" "${k_cset}" )";;
-    *)      k_ver_extra="";;
-esac
-k_ver_extra="$( echo "${k_ver_extra}" |tr '-' '_' )"
+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
 
 if [ "${plain}" -eq 1 ]; then
     echo "${k_ver_plain}"
 else
-    echo "${k_ver}${k_ver_extra}${kf_ver}"
+    echo "${k_ver}${k_ver_extra}.${kf_ver}"
 fi