#!/bin/sh
#
# gitflow -- A collection of Git wrapper scripts to provide high-level
# repository operations for Vincent Driessen's branching model:
# 
# Original blog post presenting this model is found at:
#    http://nvie.com/archives/323
# 
# Feel free to contribute to this project at:
#    http://github.com/nvie/gitflow
#
# Copyright (c) 2010 by Vincent Driessen
#

usage() {
	echo "usage: gitflow start release <release>"
	echo "       gitflow finish release <release>"
}

parse_args() {
	RELEASE="$1"
	if [ "$RELEASE" = "" ]; then
		echo "Missing argument <release>."
		usage
		exit 1
	fi
	RELEASE_BRANCH="release-$RELEASE"
}

start() {
	parse_args "$@"

	# Checks
	gitflow_check_clean_working_tree
	gitflow_require_branches_equal 'develop' 'origin/develop'
	gitflow_require_branch_absent "$RELEASE_BRANCH"

	# All checks passed, ready to roll
	echo "git checkout -b \"$RELEASE_BRANCH\" develop"
	echo "Don't forget to bump the version number now."
}

finish() {
	parse_args "$@"

	# Checks
	gitflow_check_clean_working_tree

	echo "git fetch origin"
	git fetch origin
	gitflow_require_branches_equal 'master' 'origin/master'
	gitflow_require_branches_equal 'develop' 'origin/develop'

	# All checks passed, ready to roll
	echo "git checkout master"
	echo "git merge --no-ff \"$RELEASE_BRANCH\""
	echo "git tag \"$RELEASE\""
	echo "git checkout develop"
	echo "git merge --no-ff \"$RELEASE_BRANCH\""
	echo "git branch -d \"$RELEASE_BRANCH\""
}

