diff options
Diffstat (limited to 'pkgs/by-name/gi/git-cleanup/git-cleanup.sh')
-rwxr-xr-x | pkgs/by-name/gi/git-cleanup/git-cleanup.sh | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/pkgs/by-name/gi/git-cleanup/git-cleanup.sh b/pkgs/by-name/gi/git-cleanup/git-cleanup.sh deleted file mode 100755 index f423a9d2..00000000 --- a/pkgs/by-name/gi/git-cleanup/git-cleanup.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env dash - -# shellcheck source=/dev/null -SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH - -help() { - cat <<EOF -Automatically remove merged branches (remote and local) - -USAGE: - git-cleanup [OPTIONS] - -OPTIONS: - --remote | -r - Act on remote branches - - --help | -h - Display this help and exit. - - --version | -v - Display version and copyright information and exit. -EOF -} - -# This should always be the correct answer. -get_default_branch() { - # source: https://stackoverflow.com/a/50056710 - # We assume, that 'origin' is the remote in use - git remote show origin | sed -n '/HEAD branch/s|.*: ||p' -} - -cleanup() { - default_branch="$(get_default_branch)" - - merged_branches="$(git branch --merged "$default_branch" --no-contains "$default_branch" --format='%(refname:short)')" - - # shellcheck disable=2086 - # We expect the branches to not contain spaces and want git to deal with them - # separately - [ "$merged_branches" ] && git branch --delete $merged_branches -} -cleanup_remote() { - default_branch="$(get_default_branch)" - - merged_branches="$(git branch --remotes --merged "$default_branch" --no-contains "$default_branch" --format='%(refname:short)' | sed 's|origin/||')" - - # shellcheck disable=2086 - # We expect the branches to not contain spaces and want git to deal with them - # separately - [ "$merged_branches" ] && git push --delete origin $merged_branches -} - -remote=false -for arg in "$@"; do - case "$arg" in - "--help" | "-h") - help - exit 0 - ;; - "--version" | "-v") - version - exit 0 - ;; - "--remote" | "-r") - remote=true - ;; - esac -done - -if [ "$remote" = "true" ]; then - cleanup_remote -elif [ "$remote" = "false" ]; then - cleanup -else - die "BUG: 'remote' is not true or false but: '$remote'" -fi - -# vim: ft=sh |