#!/usr/bin/env bash

set -e

# pull the current git commit hash
COMMIT=$(git rev-parse HEAD)

# check if the current commit has a matching tag
TAG=$(git describe --exact-match --abbrev=0 --tags "${COMMIT}" 2> /dev/null || true)

# use the matching tag as the version, if available
if [ -z "$TAG" ]; then
	VERSION=$COMMIT
else
	VERSION=$TAG
fi

# check for changed files (not untracked files)
if [ -n "$(git diff --shortstat 2> /dev/null | tail -n1)" ]; then
	VERSION="${VERSION}_dirty"
fi

echo "$VERSION"
