1#!/bin/sh 2 3plain=0 4internal=0 5case "${1}" in 6 "") ;; 7 --plain) plain=1;; 8 --internal) internal=1;; 9 *) printf "${0##*/}: unknow option '%s'\n" "${1}" >&2; exit 1;; 10esac 11if [ ${plain} -ne 0 -a ${internal} -ne 0 ]; then 12 printf "Can't print both plain and internal" >&2 13 printf " versions at the same time\n" >&2 14 exit 1 15fi 16 17ver_file="${0%/*}/../.version" 18k_ver="$( head -n 1 "${ver_file}" |cut -d ' ' -f 1 )" 19k_cset="$( head -n 1 "${ver_file}" |cut -d ' ' -f 2 )" 20k_name="$( head -n 1 "${ver_file}" |cut -d ' ' -f 3- )" 21kf_ver="$( tail -n 1 "${ver_file}" )" 22 23if [ ${internal} -ne 0 ]; then 24 printf "%s\n" "${kf_ver}" 25 exit 0 26fi 27 28k_ver_plain="$( printf "%s" "${k_ver}" \ 29 |sed -e 's/-rc.*//;' )" 30 31case "${kf_ver}" in 32 git) kf_ver="-$( git rev-parse --short HEAD )" 33 k_ver_extra="$( printf "_%-7.7s" "${k_cset}" )" 34 ;; 35 *) k_ver_extra="";; 36esac 37 38if [ "${plain}" -eq 1 ]; then 39 echo "${k_ver_plain}" 40else 41 echo "${k_ver}${k_ver_extra}.${kf_ver}" 42fi 43 44