Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- set -ue
- for dir in ./*; do
- if [[ -d "$dir" && ! -L "$dir" ]]; then
- REPO_NAME=$(basename `git -C $dir rev-parse --show-toplevel`)
- # inside_git_repo
- if [[ "$(git -C $dir rev-parse --is-inside-work-tree 2>/dev/null)" ]]; then
- # working tree clean
- if [[ ! -n $(git -C $dir status -s) ]]; then
- echo "refreshing $REPO_NAME"
- ACTIVE_BRANCH=$(git -C $dir rev-parse --abbrev-ref HEAD)
- if [[ $ACTIVE_BRANCH != "master" ]]; then
- git -C $dir checkout master > /dev/null
- fi
- git -C $dir fetch --all > /dev/null
- git -C $dir pull --all > /dev/null
- if [[ $(git -C $dir rev-parse --abbrev-ref HEAD) != $ACTIVE_BRANCH ]]; then
- git -C $dir checkout $ACTIVE_BRANCH > /dev/null
- fi
- echo "refreshed $REPO_NAME"
- else
- echo "skipping $REPO_NAME - working tree dirty"
- fi
- echo ""
- fi
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement