diff options
-rwxr-xr-x | git-branch-list | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/git-branch-list b/git-branch-list index c0e355c..5d0bc44 100755 --- a/git-branch-list +++ b/git-branch-list @@ -36,12 +36,12 @@ function save_branch () { function drop_branch () { local branch=$(branch_or_current_branch "$1") - sed -i '.bak' "/$branch/d" "$DATABASE" + # Assume `$branch` is an ID if it's not a branch name + if ! is_a_branch "$branch"; then + branch=$(branch_by_id "$branch") + fi - # TODO: Allow dropping by ID or branch name - # if [ "$branch" = '' ] use current branch - # if is_a_branch "$branch"; then do what happens now - # try to delete branch at ID + sed -i '.bak' "/$branch/d" "$DATABASE" } function list_branches () { @@ -50,11 +50,7 @@ function list_branches () { function checkout_branch () { local id="$1" - - local branch=$(list_branches | - tr -d ' ' | - fgrep "$id " | - cut -d ' ' -f 2) + local branch=$(branch_by_id "$id") if [ "$branch" = '' ]; then echo 'branch-list: Invalid checkout ID' 1>&2 @@ -81,6 +77,17 @@ function is_a_branch () { return $? } +function branch_by_id () { + local id="$1" + + local branch=$(list_branches | + tr -d ' ' | + fgrep "$id " | + cut -d ' ' -f 2) + + echo "$branch" +} + command="$1" initialise_database |