ambevar-dotfiles/.scripts/git-sync

29 lines
500 B
Bash
Executable File

#!/bin/sh
usage () {
cat <<EOF>&2
Usage: ${0##*/} FOLDERS
Sync all git repos found in FOLDERS.
EOF
}
[ $# -eq 0 ] && usage && exit 1
[ "$1" = "-h" ] && usage && exit
[ "$1" = "--" ] && shift
for i; do
while IFS= read -r FOLDER; do
ROOT="${FOLDER%/*}"
STATUS="$(cd -- "$ROOT" && git status -uno | grep "Your branch is ahead of")"
if [ -n "$STATUS" ]; then
echo "$ROOT"
echo "$STATUS"
(cd -- "$ROOT" && git push)
echo
fi
done <<EOF
$(find "$i" -type d -name ".git")
EOF
done