27 lines
766 B
Bash
Executable File
27 lines
766 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -u
|
|
|
|
error() {
|
|
echo >&2 "error: $*"
|
|
exit 1
|
|
}
|
|
|
|
command -v git > /dev/null || error "git command not found!"
|
|
command -v tee > /dev/null || error "tee command not found!"
|
|
|
|
typeset -r version_file="VERSION"
|
|
|
|
if [[ "$(git rev-parse --is-inside-work-tree 2> /dev/null)" == "true" ]]; then
|
|
tag=$(git tag --points-at HEAD | tee "$version_file" || error "could not extract tag")
|
|
if [[ -z "$tag" ]]; then
|
|
latest_tag=$(git describe --abbrev=0 --tags || error "could not extract latest tag")
|
|
latest_commit=$(git rev-parse --short HEAD || error "could not extract commit sha")
|
|
echo "$latest_tag-dev+$latest_commit" > "$version_file"
|
|
fi
|
|
else
|
|
if [[ ! -f "$version_file" ]]; then
|
|
echo "could not detect version" > VERSION
|
|
fi
|
|
fi
|