29 lines
500 B
Bash
Executable File
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
|