Add infrastructure for multiple library packages
authorSimon Marlow <simonmar@microsoft.com>
Fri, 13 Jan 2006 15:05:05 +0000 (15:05 +0000)
committerSimon Marlow <simonmar@microsoft.com>
Fri, 13 Jan 2006 15:05:05 +0000 (15:05 +0000)
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.

darcs-all [new file with mode: 0644]
libraries/.darcs-boring [new file with mode: 0644]
libraries/default-packages [new file with mode: 0644]

diff --git a/darcs-all b/darcs-all
new file mode 100644 (file)
index 0000000..9906495
--- /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
diff --git a/libraries/.darcs-boring b/libraries/.darcs-boring
new file mode 100644 (file)
index 0000000..d0c8a63
--- /dev/null
@@ -0,0 +1,27 @@
+#Packages:
+^Cabal/
+^ALUT/
+^GLUT/
+^HGL/
+^HUnit/
+^HaXml/
+^Japi/
+^ObjectIO/
+^OpenAL/
+^OpenGL/
+^QuickCheck/
+^Win32/
+^X11/
+^arrows/
+^base/
+^fgl/
+^haskell-src/
+^haskell98/
+^monads/
+^mtl/
+^network/
+^parsec/
+^readline/
+^stm/
+^template-haskell/
+^unix/
diff --git a/libraries/default-packages b/libraries/default-packages
new file mode 100644 (file)
index 0000000..1dbefe1
--- /dev/null
@@ -0,0 +1,26 @@
+http://darcs.haskell.org/packages/Cabal
+http://darcs.haskell.org/packages/ALUT
+http://darcs.haskell.org/packages/GLUT
+http://darcs.haskell.org/packages/HGL
+http://darcs.haskell.org/packages/HUnit
+http://darcs.haskell.org/packages/HaXml
+http://darcs.haskell.org/packages/Japi
+http://darcs.haskell.org/packages/ObjectIO
+http://darcs.haskell.org/packages/OpenAL
+http://darcs.haskell.org/packages/OpenGL
+http://darcs.haskell.org/packages/QuickCheck
+http://darcs.haskell.org/packages/Win32
+http://darcs.haskell.org/packages/X11
+http://darcs.haskell.org/packages/arrows
+http://darcs.haskell.org/packages/base
+http://darcs.haskell.org/packages/fgl
+http://darcs.haskell.org/packages/haskell-src
+http://darcs.haskell.org/packages/haskell98
+http://darcs.haskell.org/packages/monads
+http://darcs.haskell.org/packages/mtl
+http://darcs.haskell.org/packages/network
+http://darcs.haskell.org/packages/parsec
+http://darcs.haskell.org/packages/readline
+http://darcs.haskell.org/packages/stm
+http://darcs.haskell.org/packages/template-haskell
+http://darcs.haskell.org/packages/unix