Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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
  • Loading branch information...
commit b866b01ba43c484e89ab36ec5fa127d053940249 1 parent fb238a2
@nvie authored
View
4 git-flow
@@ -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 "$@"
}
View
31 git-flow-feature
@@ -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 "$@"
View
31 git-flow-hotfix
@@ -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 "$@"
View
9 git-flow-init
@@ -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
+}
View
30 git-flow-release
@@ -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 "$@"
View
32 git-flow-support
@@ -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 "$@"
View
8 git-flow-version
@@ -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"
-}

0 comments on commit b866b01

Please sign in to comment.
Something went wrong with that request. Please try again.