Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. set -ue
  4.  
  5. for dir in ./*; do
  6. if [[ -d "$dir" && ! -L "$dir" ]]; then
  7. REPO_NAME=$(basename `git -C $dir rev-parse --show-toplevel`)
  8. # inside_git_repo
  9. if [[ "$(git -C $dir rev-parse --is-inside-work-tree 2>/dev/null)" ]]; then
  10. # working tree clean
  11. if [[ ! -n $(git -C $dir status -s) ]]; then
  12. echo "refreshing $REPO_NAME"
  13.  
  14. ACTIVE_BRANCH=$(git -C $dir rev-parse --abbrev-ref HEAD)
  15.  
  16. if [[ $ACTIVE_BRANCH != "master" ]]; then
  17. git -C $dir checkout master > /dev/null
  18. fi
  19.  
  20. git -C $dir fetch --all > /dev/null
  21. git -C $dir pull --all > /dev/null
  22.  
  23. if [[ $(git -C $dir rev-parse --abbrev-ref HEAD) != $ACTIVE_BRANCH ]]; then
  24. git -C $dir checkout $ACTIVE_BRANCH > /dev/null
  25. fi
  26.  
  27. echo "refreshed $REPO_NAME"
  28. else
  29. echo "skipping $REPO_NAME - working tree dirty"
  30. fi
  31. echo ""
  32. fi
  33. fi
  34. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement