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