linkerd2/bin/_tag.sh

40 lines
715 B
Bash

#!/usr/bin/env bash
set -eu
git_sha_head() {
git rev-parse --short=8 HEAD
}
clean_head() {
[ -n "${CI_FORCE_CLEAN:-}" ] || git diff-index --quiet HEAD --
}
named_tag() {
tag="$(git name-rev --tags --name-only "$(git_sha_head)")"
tag=${tag%"^0"}
echo "${tag}"
}
head_root_tag() {
if clean_head ; then
clean_head_root_tag
else
name=${USER//[^[:alnum:].-]/}
echo "dev-$(git_sha_head)-$name"
fi
}
clean_head_root_tag() {
if clean_head ; then
if [ "$(named_tag)" != undefined ]; then
named_tag
else
echo "git-$(git_sha_head)"
fi
else
echo 'Commit unstaged changes.' >&2
exit 3
fi
}