#! /bin/sh has_remote() { git remote show "$1" >/dev/null 2>&1 } prog_dir="`dirname \"$0\"`" && cat "$prog_dir"/locate-all.list | grep -F /usr/local/src | while read d; do echo "----- $d -----"; cd "$d" && if has_remote upstream && has_remote origin; then { git pull upstream master || git pull upstream main:master; } && git push origin master || exit 1 elif has_remote origin; then git pull origin master || git pull origin main:master || exit 1 fi done