Add script to delete merged branches
authorJavier Bértoli <javier@curoverse.com>
Thu, 19 Jan 2017 20:45:37 +0000 (17:45 -0300)
committerJavier Bértoli <javier@curoverse.com>
Thu, 19 Jan 2017 20:45:37 +0000 (17:45 -0300)
refs #9050

jenkins/run-delete-merged-branches.sh [new file with mode: 0755]

diff --git a/jenkins/run-delete-merged-branches.sh b/jenkins/run-delete-merged-branches.sh
new file mode 100755 (executable)
index 0000000..179d482
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+# Provide generic exit strategy for any error in execution
+_exit_handler() {
+    local rc="${?}"
+    trap - EXIT
+    if [ "${rc}" -ne 0 ]; then
+        echo "Error occurred (${rc}) while running ${0} at line ${1}: ${BASH_COMMAND}"
+    fi
+    exit "${rc}"
+}
+
+set -Ee
+trap '_exit_handler $LINENO' EXIT ERR
+
+# List here branches that you don't want to ever delete, separated with "|"
+# (as they will be passed as a parameter to egrep)
+# IE: "keep_this_branch|also_this_other|and_this_one"
+branches_to_keep="master"
+
+git checkout master
+
+git branch --remote --merged | \
+    egrep -v ${branches_to_keep} | \
+    sed 's/origin\///' | \
+    xargs -n 1 git push --delete origin
+