#!/bin/sh set -e top_dirs="nofib testsuite" default_repo_root="http://darcs.haskell.org/" default_lib_repo_root=$default_repo_root/packages function darcsall() { echo == running darcs $* at the top level darcs $* for dir in $top_dirs; do if test -d $dir -a -d $dir/_darcs; then echo "== running darcs $* in $dir" darcs $* --repodir $dir else echo "== $dir not present or not a repository; skipping" fi done for pkg in `cat libraries/default-packages`; do if test -d libraries/$pkg; then echo "== running darcs $* in libraries/$pkg" darcs $* --repodir libraries/$pkg else echo "warning: $dir doesn't seem to exist, use 'darcs-all get' to get it" fi done } function darcsget() { case $* in *--partial*) ;; *) echo "warning: adding --partial, to override use --complete" esac repo_root=`cat _darcs/prefs/defaultrepo` case $repo_root in /*) lib_repos=$repo_root/libraries;; *) lib_repos=$default_lib_repo_root;; esac cd libraries for pkg in `cat default-packages`; do if test -d $pkg; then echo "warning: $pkg already present; omitting" else repo=$lib_repos/$pkg echo "== running darcs get --partial $* $repo" darcs get --partial $* $repo fi done } if test ! -d _darcs -o ! -d ghc; then echo "error: darcs-all must be run from the top level of the ghc tree." exit 1; fi case $1 in get) shift; darcsget $*;; # Hack around whatsnew failing if there are no changes w|wh|wha|what|whats|whatsn|whatsne|whatsnew) set +e; darcsall $*;; *) darcsall $*;; esac