summaryrefslogtreecommitdiff
path: root/darcs-all
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2006-01-13 15:05:05 +0000
committerSimon Marlow <simonmar@microsoft.com>2006-01-13 15:05:05 +0000
commit60d9fc0b9ff51cef0a7895a399410f50dc52b970 (patch)
tree245bf471ab09c7a03e961a9e2bbd97fd09743b01 /darcs-all
parent8c56903f4884d9597e04868e1a67513e63dc89c0 (diff)
downloadhaskell-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-all55
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