#!/bin/bash

LC_TIME=C

if [ ! -d .git ]; then
  echo "not in an development environment, no .git directory found" >&2
  exit 1
fi

# find an exact match, if found use it as version as we are currently
# exactly on one tag
version=`git describe --tag --exact-match 2>/dev/null`
if [ $? -eq 0 ]; then
  echo $version | tr -d 'v'
  exit 0
fi

# if we are not on a exact tag, use the last tag and add the date
version=`git tag -l | sed -e 's/^v//g' | sort -V | tail -n 1`
if [ $? -eq 0 ]; then
  date=`date +%Y%m%d`
  major=` echo $version | cut -d . -f 1`
  minor1=`echo $version | cut -d . -f 2`
  minor2=`echo $version | cut -d . -f 3`

  # beta versions?
  if [ $(echo "$minor2" | sed -e 's/b[0-9]*//') != "$minor2" ]; then
    major=$((major-1))
    minor1=99
    minor2=-1
  fi

  # do we have a even minor version?
  minor2=$((minor2+1))
  version="$major.$minor1.$minor2"

  echo ${version}.${date} | tr -d 'v'
  exit 0
fi

echo "unknown"
exit 1
