5 top_dirs="nofib testsuite"
7 # Figure out where to get the other repositories from,
8 # based on where this GHC repo came from.
9 defaultrepo=`cat _darcs/prefs/defaultrepo`
12 defaultrepo_base="`echo $defaultrepo | sed 's!/ghc$!!'`"
13 defaultrepo_lib="$defaultrepo_base"/packages;;
15 defaultrepo_base="$defaultrepo"
16 defaultrepo_lib="$defaultrepo"/libraries;;
23 if [ "$quiet" = "NO" ]; then
30 message "== running darcs $@ at the top level"
32 for dir in $top_dirs; do
33 if test -d $dir -a -d $dir/_darcs; then
34 message "== running darcs $@ in $dir"
35 darcs "$@" --repodir $dir
37 message "== $dir not present or not a repository; skipping"
40 for pkg in `cat libraries/core-packages libraries/extra-packages`; do
41 if test -d libraries/$pkg; then
42 message "== running darcs $@ in libraries/$pkg"
43 darcs "$@" --repodir libraries/$pkg
45 echo "warning: $pkg doesn't seem to exist, use 'darcs-all get' to get it"
53 *--complete*|*--partial*)
56 echo "warning: adding --partial, to override use --complete"
57 additional_flag="--partial" ;;
60 if test "$nofib" = "YES"; then
61 if test -d nofib; then
62 echo "warning: nofib already present; omitting"
64 repo="$defaultrepo_base"/nofib
65 message "== running darcs get $additional_flag $@ $repo"
66 darcs get $additional_flag "$@" $repo
70 if test "$testsuite" = "YES"; then
71 if test -d testsuite; then
72 echo "warning: testsuite already present; omitting"
74 repo="$defaultrepo_base"/testsuite
75 message "== running darcs get $additional_flag $@ $repo"
76 darcs get $additional_flag "$@" $repo
82 if test "$extra" = "YES"; then
83 packages=`cat core-packages extra-packages`
85 packages=`cat core-packages`
88 for pkg in $packages; do
90 echo "warning: $pkg already present; omitting"
92 repo=$defaultrepo_lib/$pkg
93 message "== running darcs get $additional_flag $@ $repo"
94 darcs get $additional_flag "$@" $repo
99 if test ! -d _darcs -o ! -d compiler; then
100 echo "error: darcs-all must be run from the top level of the ghc tree."
108 # --extra says we grab the extra libs with 'get'. It has no effect on
109 # the other commands.
111 # --nofib/--testsuite tell get to also grab the respective repos.
112 # They have no effect on the other commands.
118 while [ "$args_done" = NO ]
121 --extra) shift; extra=YES;;
122 --nofib) shift; nofib=YES;;
123 --testsuite) shift; testsuite=YES;;
129 get) shift; darcsget "$@";;
130 # Hack around whatsnew failing if there are no changes
131 w|wh|wha|what|whats|whatsn|whatsne|whatsnew) set +e; darcsall "$@";;