#!/bin/sh
# Auto bump a version number for git
# ie: 1.1 -> 1.2
# Usage: bump.sh Project-Info.plist
if [ $# -ne 1 ]; then
echo usage: $0 plist-file
exit 1
fi
PLIST="$1"
DIR="$(dirname "$plist")"
VERSIONNUM=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PLIST}")
DATE=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PLIST}")
NEWDATE=$(date "+%Y%m%d")
NEWSUBVERSION=`echo $VERSIONNUM | awk -F "." '{print $2}'`
NEWSUBVERSION=$(($NEWSUBVERSION + 1))
NEWVERSIONSTRING=`echo $VERSIONNUM | awk -F "." '{print $1 ".'$NEWSUBVERSION'" }'`
if [ -z "$VERSIONNUM" ]; then
echo "No build number in $PLIST"
exit 2
fi
echo "Git commit and release..."
git checkout -b release/$NEWVERSIONSTRING develop
echo "Bumped build number $VERSIONNUM -> $NEWVERSIONSTRING ($NEWDATE)"
/usr/libexec/Plistbuddy -c "Set :CFBundleShortVersionString $NEWVERSIONSTRING" "${PLIST}"
/usr/libexec/Plistbuddy -c "Set :CFBundleVersion $NEWDATE" "${PLIST}"
echo "Prepare for $NEWVERSIONSTRING"
git commit -a -m "Prepare for $NEWVERSIONSTRING"
git checkout master
git merge --no-ff release/$NEWVERSIONSTRING
git tag -a $NEWVERSIONSTRING -m "Added tag $NEWVERSIONSTRING"
git checkout develop
git merge --no-ff release/$NEWVERSIONSTRING
git branch -d release/$NEWVERSIONSTRING
echo "done..."