#!/usr/bin/bash

VERSION="$1"
MAJOR=0
MINOR=0
PATCH=0

if [ $# -eq 1 ]
then
    TYPE="PATCH"
elif [ $# -eq 2 ]
then
    TYPE="$2"
else
    echo "usage: version-next version_number [MAJOR/MINOR/PATCH]"
    exit -1
fi

if [[ "$TYPE" != "MAJOR" && "$TYPE" != "MINOR" && "$TYPE" != "PATCH" ]]
then
    echo "usage: version-next version_number [MAJOR/MINOR/PATCH]"
    exit -1
fi

# break down the version number into it's components
[[ ${VERSION} =~ ([0-9]+)\.([0-9]+)\.([0-9]+) ]] || [[ ${VERSION} =~ ([0-9]+)\.([0-9]+) ]]   

MAJOR="${BASH_REMATCH[1]}"
MINOR="${BASH_REMATCH[2]}"
PATCH="${BASH_REMATCH[3]}"
if [[ "$PATCH" == "" ]]
then
    PATCH=0
fi

# check paramater to see which number to increment
if [[ "$2" == "MAJOR" ]]; then
  NEW_VERSION="$((${MAJOR}+1)).0.0"
elif [[ "$2" == "MINOR" ]]; then
  NEW_VERSION="$MAJOR.$((${MINOR}+1)).0"
else
  NEW_VERSION="$MAJOR.$MINOR.$((${PATCH}+1))"
fi

echo $NEW_VERSION