From 38c7b0337226f60f0182929b89890ff0d79fe705 Mon Sep 17 00:00:00 2001 From: spacewander Date: Tue, 8 Sep 2015 13:25:44 +0800 Subject: [PATCH] add alias to git-feature --- bin/git-feature | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/bin/git-feature b/bin/git-feature index 5fd4cd8..46292d3 100755 --- a/bin/git-feature +++ b/bin/git-feature @@ -1,24 +1,41 @@ #!/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 + fi + ;; + * ) + argv+=($1) + ;; + esac + shift +done + concatargs(){ - delim='-' - str= - for i in "$@"; do - str="$str$delim$i" - done - branch=feature/${str:1} + str=$(IFS='-'; echo "$*") + branch="$branch_prefix"/$str } -if test "$1" = "finish"; then - test -z $2 && echo "feature required." 1>&2 && exit 1 - branch=feature/$2 - git merge --no-ff $branch && git delete-branch $branch +if test "${argv[0]}" = "finish"; then + test -z "${argv[1]}" && echo "$branch_prefix" " required." 1>&2 && exit 1 + branch="$branch_prefix"/"${argv[1]}" + git merge --no-ff "$branch" && git delete-branch "$branch" else - test -z $1 && echo "feature required." 1>&2 && exit 1 - if test -n "$2"; then - concatargs ${@:2} + test -z "${argv[0]}" && echo "$branch_prefix" " required." 1>&2 && exit 1 + if test -n "${argv[1]}"; then + concatargs "${argv[@]}" else - branch=feature/$1 + branch="$branch_prefix"/"${argv[0]}" fi git checkout -b $branch fi