#!/bin/bash

set -e

if [[ $1 = -b* || $1 = --br* ]]; then
    description=$(git describe --all --always --dirty --long)
    description=${description#heads/}
elif [[ $1 = -h* || $1 = --he* ]]; then
    printf "%s\n" "Usage: $(basename "$0") [-b|--branch]"  \
                  "    --branch: prefer branches even if a tag is found"
    exit 0
elif [[ -n $1 ]]; then
    description=$(git describe --tags --long "$1" 2>/dev/null || git describe --all --always --long "$1")
else
    description=$(git describe --tags --dirty --long 2>/dev/null || git describe --all --always --dirty --long)
fi

log=$(git log -1 --pretty=format:'%s (%cs)' "${1:-HEAD}")
printf "%s - %s\n" "${description}" "${log}"

