cfg/bin/git-ps
Knut Ahlers 542937d93f
Add error handling to git-* scripts
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2017-07-17 11:55:39 +02:00

34 lines
832 B
Bash
Executable File

#!/bin/bash
set -o pipefail
set -e
STEP_COLOR="\033[0;36m"
NO_COLOR="\033[0m"
function step {
echo -e ${STEP_COLOR}[$(date +%H:%M:%S)] $1${NO_COLOR}
}
step "Fetching data from remote..."
for remote in $(git remote -v | awk '{print $1}' | sort | uniq); do
step "+++ Remote: '${remote}'"
git fetch -p ${remote}
done
step "Rebasing branch / updating submodules..."
git pull --rebase && git submodule update --init --recursive
step "Cleaning local branches..."
for branch in $(git branch --merged | grep -v '^*'); do
# Do not delete master as the main branch
if ( test "${branch}" != "master" ); then
git branch -d ${branch}
fi
done
step "Removing local branches where remote branch is gone..."
if ( git branch -vv | grep -q ': gone]' ); then
git branch -vv | awk '/: gone]/{print $1}' | xargs git branch -D
fi