#!/bin/bash if [ $# -eq 0 ]; then srcDir=$( readlink -e "${HOME}/packageSources" ) [ -d "${srcDir}" ] || exit 0 find "${srcDir}" \ -type d \ -exec sh -c 'test -f "{}/HEAD"' \; \ -printf 'git: %p\n' \ -prune , \ -type d \ -exec sh -c 'test -d "{}/.svn"' \; \ -printf 'svn: %p\n' \ -prune \ | parallel -j 0 -l 1 "$0" elif [ $# -eq 1 ]; then case "${1%%: *}" in 'git') git -C "${1#*: }" fetch --all -p ;; 'svn') cd "${1#*: }" svn update ;; *) >&2 printf '%s: unknown VCS "%s"\n' "$0" "${1%%: *}" exit 1 ;; esac else >&2 printf '%s: too many arguments\n' "$0" exit 1 fi