#!/usr/bin/env bash # Generates version based on git tag. LATEST_TAG=$(git tag | tail -n 1) # Check latest tag commit. If it is equal to current - use that tag as version. if [ "${LATEST_TAG}" != "" ]; then LATEST_TAG_COMMIT=$(git rev-list -n 1 $LATEST_TAG) LATEST_COMMIT=$(git rev-list -n 1 HEAD) if [ "${LATEST_TAG_COMMIT}" == "${LATEST_COMMIT}" ]; then echo "${LATEST_TAG}" exit 0 fi else # No tags in repo. Assuming latest tag is "v0.0.0". LATEST_TAG="0.0.0" fi # If we're here, then latest tag commit is not latest commit on current branch. # We should increase second number and add "-dev" postfix. IFS=. read MAJOR MINOR PATCH <<<"${LATEST_TAG}" MINOR=$(($MINOR + 1)) case $1 in client) echo "${MAJOR}.${MINOR}.${PATCH}" ;; *) echo "v${MAJOR}.${MINOR}.${PATCH}-dev" ;; esac