diff options
author | Simon Marlow <simonmar@microsoft.com> | 2006-01-13 15:05:05 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2006-01-13 15:05:05 +0000 |
commit | 60d9fc0b9ff51cef0a7895a399410f50dc52b970 (patch) | |
tree | 245bf471ab09c7a03e961a9e2bbd97fd09743b01 /darcs-all | |
parent | 8c56903f4884d9597e04868e1a67513e63dc89c0 (diff) | |
download | haskell-60d9fc0b9ff51cef0a7895a399410f50dc52b970.tar.gz |
Add infrastructure for multiple library packages
The ./darcs-all script at the top level is an easier way to do darcs
pull/push/get on the whole tree (it should probably allow more
commands; I'll fix that later).
libraries/default-packages is a list of darcs repositories with which
to populate the libraries tree.
Diffstat (limited to 'darcs-all')
-rw-r--r-- | darcs-all | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/darcs-all b/darcs-all new file mode 100644 index 0000000000..9906495313 --- /dev/null +++ b/darcs-all @@ -0,0 +1,55 @@ +#!/bin/sh + +top_dirs="nofib testsuite" + +function darcsall() +{ + for dir in $top_dirs; do + if test -d $dir -a -d $dir/_darcs; then + echo "== running darcs $* in $dir" + (cd $dir && darcs $*) + else + echo "== $dir not present or not a repository; skipping" + fi + done + cd libraries + for repo in `cat default-packages`; do + dir=`basename $repo` + if test -d $dir; then + echo "== running darcs $* in libraries/$dir" + (cd $dir && darcs $*) + 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 + + cd libraries + for repo in `cat default-packages`; do + if test -d `basename $repo`; then + echo "warning: `basename $repo` already present; omitting" + else + 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 + push) darcsall $*;; + pull) darcsall $*;; + get) shift; darcsget $*;; + *) echo "syntax: ./darcs-all push|pull"; exit 1;; +esac |