#!/bin/bash

FILE="gldcore/version.h"
PACKAGE_NAME=`cat $FILE | sed -En 's/#define PACKAGE_NAME "([-A-Za-z ]+).*"/\1/p' | tr -d '\n'`
PACKAGE=`cat $FILE | sed -En 's/#define PACKAGE "([a-z]+).*"/\1/p' | tr -d '\n'`
REV_MAJOR=`cat $FILE | sed -En 's/#define REV_MAJOR ([0-9]+).*/\1/p' | tr -d '\n'`
REV_MINOR=`cat $FILE | sed -En 's/#define REV_MINOR ([0-9]+).*/\1/p' | tr -d '\n'`
REV_PATCH=`cat $FILE | sed -En 's/#define REV_PATCH ([0-9]+).*/\1/p' | tr -d '\n'`
if [ "$1" == "show" ]; then
	echo "Package name... $PACKAGE_NAME"
	echo "Package........ $PACKAGE"
	echo "Major number... $REV_MAJOR"
	echo "Minor number... $REV_MINOR"
	echo "Patch number... $REV_PATCH"
else
	read -p "Package name [$PACKAGE_NAME]: " PACKAGE_NAME
	read -p "Package: [$PACKAGE] " PACKAGE
	read -p "Major number: [$REV_MAJOR] " REV_MAJOR
	read -p "Minor number: [$REV_MINOR] " REV_MINOR
	read -p "Patch number: [$REV_PATCH] " REV_PATCH
	for N in PACKAGE_NAME PACKAGE REV_MAJOR REV_MINOR REV_PATCH; do
		V=$(eval echo \$$N)
		if [ ! -z "$V" ]; then
			if [ ${N:0:3} == "REV" ]; then
				sed -Ei '1,$s/^#define '$N' .+$/#define '$N' '$V'/' $FILE
			else
				sed -Ei '1,$s/^#define '$N' .+$/#define '$N' "'"$V"'"/' $FILE
			fi
		fi
	done
fi
