Add script to delete merged branches
[arvados-dev.git] / jenkins / run-delete-merged-branches.sh
1 #!/usr/bin/env bash
2
3 # Provide generic exit strategy for any error in execution
4 _exit_handler() {
5     local rc="${?}"
6     trap - EXIT
7     if [ "${rc}" -ne 0 ]; then
8         echo "Error occurred (${rc}) while running ${0} at line ${1}: ${BASH_COMMAND}"
9     fi
10     exit "${rc}"
11 }
12
13 set -Ee
14 trap '_exit_handler $LINENO' EXIT ERR
15
16 # List here branches that you don't want to ever delete, separated with "|"
17 # (as they will be passed as a parameter to egrep)
18 # IE: "keep_this_branch|also_this_other|and_this_one"
19 branches_to_keep="master"
20
21 git checkout master
22
23 git branch --remote --merged | \
24     egrep -v ${branches_to_keep} | \
25     sed 's/origin\///' | \
26     xargs -n 1 git push --delete origin
27