Commit b866b01b authored by Vincent Driessen's avatar Vincent Driessen

Give all subcommands an optional setup() function that will be called by...

Give all subcommands an optional setup() function that will be called by git-flow in order to let the subcommand initialize its environment.

Give all the branch-type subcommands a default explicit "list" action, too.

Order the functions inside each of the subcommands in a specific order, for consistency:
- usage()
- setup()
- cmd_default()
- cmd_list()
- cmd_help()
- parse_args()
- other commands
parent fb238a24
......@@ -90,6 +90,10 @@ sub_main() {
fi
# run the specified action
# if the subcommand declares a setup() function, call that first
if typeset -f setup >/dev/null; then
setup
fi
cmd_$SUBACTION "$@"
}
......
......@@ -13,7 +13,7 @@
#
usage() {
echo "usage: git flow feature"
echo "usage: git flow feature [list]"
echo " git flow feature start <name> [<base>]"
echo " git flow feature finish <name> [<base>]"
echo " git flow feature publish <name>"
......@@ -34,21 +34,16 @@ usage() {
#echo "--push Push to the origin repo when finished"
}
parse_args() {
NAME="$1"
BASE="${2:-$DEVELOP_BRANCH}"
if [ "$NAME" = "" ]; then
echo "Missing argument <name>."
usage
exit 1
fi
# setup will always be called before the actual cmd_* functions
setup() {
PREFIX=$(git config --get gitflow.prefix.feature || echo feature/)
BRANCH=$PREFIX$NAME
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.feature || echo feature/)
cmd_list "$@"
}
cmd_list() {
FEATURE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$FEATURE_BRANCHES" ]; then
warn "No feature branches exist."
......@@ -62,6 +57,18 @@ cmd_help() {
exit 0
}
parse_args() {
NAME="$1"
BASE="${2:-$DEVELOP_BRANCH}"
if [ "$NAME" = "" ]; then
echo "Missing argument <name>."
usage
exit 1
fi
PREFIX=$(git config --get gitflow.prefix.feature || echo feature/)
BRANCH=$PREFIX$NAME
}
cmd_start() {
parse_args "$@"
......
......@@ -13,7 +13,7 @@
#
usage() {
echo "usage: git flow hotfix"
echo "usage: git flow hotfix [list]"
echo " git flow hotfix start <version> [<base>]"
echo " git flow hotfix finish <version> [<base>]"
# TODO
......@@ -28,21 +28,16 @@ usage() {
#echo "--push Push to the origin repo when finished"
}
parse_args() {
VERSION="$1"
BASE="${2:-$MASTER_BRANCH}"
if [ "$VERSION" = "" ]; then
echo "Missing argument <version>."
usage
exit 1
fi
# setup will always be called before the actual cmd_* functions
setup() {
PREFIX=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
BRANCH=$PREFIX$VERSION
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
cmd_list "$@"
}
cmd_list() {
HOTFIX_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$HOTFIX_BRANCHES" ]; then
warn "No hotfix branches exist."
......@@ -56,6 +51,18 @@ cmd_help() {
exit 0
}
parse_args() {
VERSION="$1"
BASE="${2:-$MASTER_BRANCH}"
if [ "$VERSION" = "" ]; then
echo "Missing argument <version>."
usage
exit 1
fi
PREFIX=$(git config --get gitflow.prefix.hotfix || echo hotfix/)
BRANCH=$PREFIX$VERSION
}
cmd_start() {
parse_args "$@"
......
......@@ -16,11 +16,6 @@ usage() {
echo "usage: git flow init"
}
cmd_help() {
usage
exit 0
}
# Default entry when no SUBACTION is given
cmd_default() {
echo
......@@ -76,3 +71,7 @@ cmd_default() {
fi
}
cmd_help() {
usage
exit 0
}
......@@ -13,7 +13,7 @@
#
usage() {
echo "usage: git flow release"
echo "usage: git flow release [list]"
echo " git flow release start <version>"
echo " git flow release finish <version>"
# TODO
......@@ -29,21 +29,17 @@ usage() {
#echo "--push Push to the origin repo when finished"
}
parse_args() {
VERSION_PREFIX=$(git config --get gitflow.prefix.versiontag)
VERSION="$1"
if [ "$VERSION" = "" ]; then
echo "Missing argument <version>."
usage
exit 1
fi
# setup will always be called before the actual cmd_* functions
setup() {
PREFIX=$(git config --get gitflow.prefix.release || echo release/)
BRANCH=$PREFIX$VERSION
VERSION_PREFIX=$(git config --get gitflow.prefix.versiontag)
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.release || echo release/)
cmd_list "$@"
}
cmd_list() {
RELEASE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$RELEASE_BRANCHES" ]; then
warn "No release branches exist."
......@@ -57,6 +53,16 @@ cmd_help() {
exit 0
}
parse_args() {
VERSION="$1"
if [ "$VERSION" = "" ]; then
echo "Missing argument <version>."
usage
exit 1
fi
BRANCH=$PREFIX$VERSION
}
cmd_start() {
parse_args "$@"
......
......@@ -13,26 +13,19 @@
#
usage() {
echo "usage: git flow support"
echo "usage: git flow support [list]"
echo " git flow support start <version> [<base>]"
}
parse_args() {
VERSION_PREFIX=$(git config --get gitflow.prefix.versiontag)
VERSION="$1"
BASE="${2:-${VERSION_PREFIX}${VERSION}}"
if [ "$VERSION" = "" ]; then
echo "Missing argument <version>."
usage
exit 1
fi
setup() {
PREFIX=$(git config --get gitflow.prefix.support || echo support/)
BRANCH=$PREFIX$VERSION
}
cmd_default() {
# TODO: Refactor getting this prefix into a general function
PREFIX=$(git config --get gitflow.prefix.support || echo support/)
cmd_list "$@"
}
cmd_list() {
SUPPORT_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
if [ -z "$SUPPORT_BRANCHES" ]; then
warn "No support branches exist."
......@@ -46,6 +39,19 @@ cmd_help() {
exit 0
}
parse_args() {
VERSION_PREFIX=$(git config --get gitflow.prefix.versiontag)
VERSION="$1"
BASE="${2:-${VERSION_PREFIX}${VERSION}}"
if [ "$VERSION" = "" ]; then
echo "Missing argument <version>."
usage
exit 1
fi
PREFIX=$(git config --get gitflow.prefix.support || echo support/)
BRANCH=$PREFIX$VERSION
}
cmd_start() {
parse_args "$@"
......
......@@ -17,11 +17,11 @@ usage() {
echo "usage: git flow version"
}
cmd_default() {
echo "$GITFLOW_VERSION"
}
cmd_help() {
usage
exit 0
}
cmd_default() {
echo "$GITFLOW_VERSION"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment