#!/bin/sh set -eu description=$(git describe --tags --long --match 'v[0-9]*' --dirty) case "$description" in *-dirty) echo 'Refusing dirty tree' >&2; exit 1 ;; esac version=${description#v} version=$(printf '%s\n' "$version" | sed -E 's/\.([0-9]+-[[:alnum:]]+)(-[0-9]+-g[0-9a-f]+)?$/-\1\2/') case "$version" in *-0-g*) version=${version%%-0-g*} ;; esac printf '%s\n' "$version"