tj.git-extras/bin/git-feature
Mark Pitman 61b2a2c703 Add ability to specify a remote
Use -r to push the new branch to origin
Use -r <remote_name> to push to <remote_name>

Will not auto push to origin if you do not use the argument
2017-07-09 01:57:46 -07:00

56 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
branch_prefix=feature
declare -a argv
while test $# != 0
do
case $1 in
-a|--alias )
if [[ -n $2 ]]
then
shift # shift -a|-alias
branch_prefix=$1
else
argv+=($1) # treat tail '-a' as <name>
fi
;;
-r|--remote )
if [[ -n $2 ]]
then
remote=$2
shift
else
remote="origin"
fi
;;
* )
argv+=($1)
;;
esac
shift
done
concatargs(){
str=$(IFS='-'; echo "$*")
branch="$branch_prefix"/$str
}
if test "${argv[0]}" = "finish"; then
test -z "${argv[1]}" && echo "$branch_prefix" "<name> required." 1>&2 && exit 1
branch="$branch_prefix"/"${argv[1]}"
git merge --no-ff "$branch" && git delete-branch "$branch"
else
test -z "${argv[0]}" && echo "$branch_prefix" "<name> required." 1>&2 && exit 1
if test -n "${argv[1]}"; then
concatargs "${argv[@]}"
else
branch="$branch_prefix"/"${argv[0]}"
fi
if [[ -n $remote ]]
then
git create-branch -r $remote $branch
else
git create-branch $branch
fi
fi