#!/bin/bash trap 'echo "INTERRUPTED: " "$@" ; exit 1' SIGINT # moving darcs archives around. [ -z "$1" ] && echo "usage: $0 [ ...]" && exit 1 CMD=`basename $0` DARCS_PROJECTS=" darcs-private/admin darcs/nodes darcs/libhaco darcs/brood-5 darcs/sweb darcs/pool darcs/snot darcs/pr darcs/papers darcs/packetforth darcs/dotp darcs/scraper darcs/tfs darcs/plt darcs/ip darcs/pltix darcs/ip darcs/davinci darcs/meta darcs/libprim darcs/pd darcs/bcr2000 darcs/scope darcs/impedance darcs/analog darcs/ecos darcs/gaf darcs/hgl " GIT_PROJECTS=" git/tinyscheme git/ecos-build git/cx " PROJECTS="$GIT_PROJECTS $DARCS_PROJECTS" # Private git repos are not included: they can be rebased + have # non-tracked data, so rsync-based backup is probably better. do_darcs () { # host project darcs wh | grep -v 'No changes'; \ darcs $CMD -qav $1$2 | grep -v following } # For git, only push to bare repositories. do_git () { git $CMD $1$2 master } host () { echo HOST: $1 for project in $PROJECTS; do echo "--- $project" if cd ~/$project; then if [ -x .git ]; then do_git $1 $project else do_darcs $1 $project fi fi done } for h in "$@"; do host "$h"; done