Replaced all 'typeset' and 'typeset -i' calls by 'local', as adviced on:
https://wiki.ubuntu.com/DashAsBinSh
Went back from making use of the specific Bourne shell construct 'typeset
-i' for easy integer calculations (typeset -i foo=123; foo=foo+456;) to a
more compatible way (local foo=123; foo=$((foo+456)); )
The 'typeset -f' call has been replaced by a call to 'type', effectively
not testing for existence of a declared *function*, but testing for
existence of a declared *something*. You have to sacrifice sometimes in
order to be more portable.
diff --git a/git-flow b/git-flow
index 573aa25..a7e4a26 100755
--- a/git-flow
+++ b/git-flow
@@ -77,7 +77,7 @@
if [ "$1" != "" ] && ! echo "$1" | grep -q "^-"; then
SUBACTION="$1"; shift
fi
- if ! typeset -f "cmd_$SUBACTION" 2>&1 >/dev/null; then
+ if ! type "cmd_$SUBACTION" > /dev/null 2>&1; then
warn "Unknown subcommand: '$SUBACTION'"
usage
exit 1
diff --git a/git-flow-feature b/git-flow-feature
index db45d81..d65da94 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -32,9 +32,9 @@
DEFINE_boolean verbose false 'verbose (more) output' v
parse_args "$@"
- typeset feature_branches
- typeset current_branch
- typeset short_names
+ local feature_branches
+ local current_branch
+ local short_names
feature_branches=$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")
if [ -z "$feature_branches" ]; then
warn "No feature branches exist."
@@ -44,20 +44,20 @@
short_names=$(echo "$feature_branches" | sed "s ^$PREFIX g")
# determine column width first
- typeset -i width=0
- typeset branch
+ local width=0
+ local branch
for branch in $short_names; do
- typeset -i len=${#branch}
+ local len=${#branch}
width=$(max $width $len)
done
- width=width+3
+ width=$(($width+3))
- typeset branch
+ local branch
for branch in $short_names; do
- typeset fullname=$PREFIX$branch
- typeset base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
- typeset develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
- typeset branch_sha=$(git rev-parse "$fullname")
+ local fullname=$PREFIX$branch
+ local base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
+ local develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
+ local branch_sha=$(git rev-parse "$fullname")
if [ "$fullname" = "$current_branch" ]; then
printf "* "
else
@@ -97,8 +97,8 @@
expand_nameprefix_arg() {
require_name_arg
- typeset expanded_name
- typeset -i exitcode
+ local expanded_name
+ local exitcode
expanded_name=$(resolve_nameprefix "$NAME" "$PREFIX")
exitcode=$?
case $exitcode in
@@ -114,7 +114,7 @@
expand_nameprefix_arg
gitflow_require_branch "$PREFIX$NAME"
else
- typeset current_branch=$(gitflow_current_branch)
+ local current_branch=$(gitflow_current_branch)
if startswith "$current_branch" "$PREFIX"; then
BRANCH=$current_branch
NAME=${BRANCH#$PREFIX}
@@ -368,7 +368,7 @@
gitflow_require_branch "$BRANCH"
git checkout -q "$BRANCH"
- typeset OPTS=
+ local OPTS=
if flag interactive; then
OPTS="$OPTS -i"
fi
diff --git a/git-flow-hotfix b/git-flow-hotfix
index cee8d2f..9e71374 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -29,9 +29,9 @@
DEFINE_boolean verbose false 'verbose (more) output' v
parse_args "$@"
- typeset hotfix_branches
- typeset current_branch
- typeset short_names
+ local hotfix_branches
+ local current_branch
+ local short_names
hotfix_branches=$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")
if [ -z "$hotfix_branches" ]; then
warn "No hotfix branches exist."
@@ -41,20 +41,20 @@
short_names=$(echo "$hotfix_branches" | sed "s ^$PREFIX g")
# determine column width first
- typeset -i width=0
- typeset branch
+ local width=0
+ local branch
for branch in $short_names; do
- typeset -i len=${#branch}
+ local len=${#branch}
width=$(max $width $len)
done
- width=width+3
+ width=$(($width+3))
- typeset branch
+ local branch
for branch in $short_names; do
- typeset fullname=$PREFIX$branch
- typeset base=$(git merge-base "$fullname" "$MASTER_BRANCH")
- typeset master_sha=$(git rev-parse "$MASTER_BRANCH")
- typeset branch_sha=$(git rev-parse "$fullname")
+ local fullname=$PREFIX$branch
+ local base=$(git merge-base "$fullname" "$MASTER_BRANCH")
+ local master_sha=$(git rev-parse "$MASTER_BRANCH")
+ local branch_sha=$(git rev-parse "$fullname")
if [ "$fullname" = "$current_branch" ]; then
printf "* "
else
@@ -65,8 +65,8 @@
if [ "$branch_sha" = "$master_sha" ]; then
printf "(no commits yet)"
else
- typeset tagname=$(git name-rev --tags --no-undefined --name-only "$base")
- typeset nicename
+ local tagname=$(git name-rev --tags --no-undefined --name-only "$base")
+ local nicename
if [ "$tagname" != "" ]; then
nicename=$tagname
else
@@ -184,9 +184,9 @@
# try to tag the release
# in case a previous attempt to finish this release branch has failed,
# but the tag was set successful, we skip it now
- typeset tagname=$VERSION_PREFIX$VERSION
+ local tagname=$VERSION_PREFIX$VERSION
if ! gitflow_tag_exists "$tagname"; then
- typeset opts="-a"
+ local opts="-a"
flag sign && opts="$opts -s"
[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
diff --git a/git-flow-release b/git-flow-release
index 556af28..329a5e1 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -40,9 +40,9 @@
DEFINE_boolean verbose false 'verbose (more) output' v
parse_args "$@"
- typeset release_branches
- typeset current_branch
- typeset short_names
+ local release_branches
+ local current_branch
+ local short_names
release_branches=$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")
if [ -z "$release_branches" ]; then
warn "No release branches exist."
@@ -53,20 +53,20 @@
short_names=$(echo "$release_branches" | sed "s ^$PREFIX g")
# determine column width first
- typeset -i width=0
- typeset branch
+ local width=0
+ local branch
for branch in $short_names; do
- typeset -i len=${#branch}
+ local len=${#branch}
width=$(max $width $len)
done
- width=width+3
+ width=$(($width+3))
- typeset branch
+ local branch
for branch in $short_names; do
- typeset fullname=$PREFIX$branch
- typeset base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
- typeset develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
- typeset branch_sha=$(git rev-parse "$fullname")
+ local fullname=$PREFIX$branch
+ local base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
+ local develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
+ local branch_sha=$(git rev-parse "$fullname")
if [ "$fullname" = "$current_branch" ]; then
printf "* "
else
@@ -77,7 +77,7 @@
if [ "$branch_sha" = "$develop_sha" ]; then
printf "(no commits yet)"
else
- typeset nicename=$(git rev-parse --short "$base")
+ local nicename=$(git rev-parse --short "$base")
printf "(based on $nicename)"
fi
else
@@ -190,9 +190,9 @@
# try to tag the release
# in case a previous attempt to finish this release branch has failed,
# but the tag was set successful, we skip it now
- typeset tagname=$VERSION_PREFIX$VERSION
+ local tagname=$VERSION_PREFIX$VERSION
if ! gitflow_tag_exists "$tagname"; then
- typeset opts="-a"
+ local opts="-a"
flag sign && opts="$opts -s"
[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
diff --git a/git-flow-support b/git-flow-support
index 06bea16..804a01d 100644
--- a/git-flow-support
+++ b/git-flow-support
@@ -31,9 +31,9 @@
DEFINE_boolean verbose false 'verbose (more) output' v
parse_args "$@"
- typeset support_branches
- typeset current_branch
- typeset short_names
+ local support_branches
+ local current_branch
+ local short_names
support_branches=$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")
if [ -z "$support_branches" ]; then
warn "No support branches exist."
@@ -43,20 +43,20 @@
short_names=$(echo "$support_branches" | sed "s ^$PREFIX g")
# determine column width first
- typeset -i width=0
- typeset branch
+ local width=0
+ local branch
for branch in $short_names; do
- typeset -i len=${#branch}
+ local len=${#branch}
width=$(max $width $len)
done
- width=width+3
+ width=$(($width+3))
- typeset branch
+ local branch
for branch in $short_names; do
- typeset fullname=$PREFIX$branch
- typeset base=$(git merge-base "$fullname" "$MASTER_BRANCH")
- typeset master_sha=$(git rev-parse "$MASTER_BRANCH")
- typeset branch_sha=$(git rev-parse "$fullname")
+ local fullname=$PREFIX$branch
+ local base=$(git merge-base "$fullname" "$MASTER_BRANCH")
+ local master_sha=$(git rev-parse "$MASTER_BRANCH")
+ local branch_sha=$(git rev-parse "$fullname")
if [ "$fullname" = "$current_branch" ]; then
printf "* "
else
@@ -67,8 +67,8 @@
if [ "$branch_sha" = "$master_sha" ]; then
printf "(no commits yet)"
else
- typeset tagname=$(git name-rev --tags --no-undefined --name-only "$base")
- typeset nicename
+ local tagname=$(git name-rev --tags --no-undefined --name-only "$base")
+ local nicename
if [ "$tagname" != "" ]; then
nicename=$tagname
else
diff --git a/gitflow-common b/gitflow-common
index b1c42ac..8efc365 100644
--- a/gitflow-common
+++ b/gitflow-common
@@ -18,7 +18,7 @@
# set logic
has() {
- typeset item=$1; shift
+ local item=$1; shift
echo " $@ " | grep -q " $item "
}
@@ -31,8 +31,8 @@
endswith() { [ "$1" != "${1#$2}" ]; }
# convenience functions for checking shFlags flags
-flag() { typeset FLAG; eval FLAG='$FLAGS_'$1; [ $FLAG -eq $FLAGS_TRUE ]; }
-noflag() { typeset FLAG; eval FLAG='$FLAGS_'$1; [ $FLAG -ne $FLAGS_TRUE ]; }
+flag() { local FLAG; eval FLAG='$FLAGS_'$1; [ $FLAG -eq $FLAGS_TRUE ]; }
+noflag() { local FLAG; eval FLAG='$FLAGS_'$1; [ $FLAG -ne $FLAGS_TRUE ]; }
#
# Git specific common functionality
@@ -61,10 +61,10 @@
# 2: Multiple matches found. These matches are written to stderr
#
resolve_nameprefix() {
- typeset name=$1
- typeset prefix=$2
- typeset matches
- typeset -i num_matches
+ local name=$1
+ local prefix=$2
+ local matches
+ local num_matches
# first, check if there is a perfect match
if has "$LOCAL_BRANCHES" "$prefix$name"; then
@@ -109,7 +109,7 @@
gitflow_require_clean_working_tree() {
gitflow_test_clean_working_tree
- typeset -i result=$?
+ local result=$?
if [ $result -eq 1 ]; then
die "fatal: Working tree contains unstaged changes. Aborting."
fi
@@ -164,10 +164,10 @@
# 3 Branch needs a real merge
#
gitflow_test_branches_equal() {
- typeset commit1=$(git rev-parse "$1")
- typeset commit2=$(git rev-parse "$2")
+ local commit1=$(git rev-parse "$1")
+ local commit2=$(git rev-parse "$2")
if [ "$commit1" != "$commit2" ]; then
- typeset base=$(git merge-base "$commit1" "$commit2")
+ local base=$(git merge-base "$commit1" "$commit2")
if [ "$commit1" = "$base" ]; then
return 1
elif [ "$commit2" = "$base" ]; then
@@ -184,7 +184,7 @@
gitflow_require_local_branch "$1"
gitflow_require_remote_branch "$2"
gitflow_test_branches_equal "$1" "$2"
- typeset -i status=$?
+ local status=$?
if [ $status -gt 0 ]; then
warn "Branches '$1' and '$2' have diverged."
if [ $status -eq 1 ]; then
@@ -204,8 +204,8 @@
# Checks whether branch $1 is succesfully merged into $2
#
gitflow_is_branch_merged_into() {
- typeset subject=$1
- typeset base=$2
- typeset all_merges=$(git branch --contains $subject | sed 's/^[* ] //')
+ local subject=$1
+ local base=$2
+ local all_merges=$(git branch --contains $subject | sed 's/^[* ] //')
has $base $all_merges
}