X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=darcs-all;h=8b2a68a6bed09b7c95e6922fd40d1afa53cc4407;hp=186771ee41a24cbf2152990d8203bd7f26811bd6;hb=9fd4d1e84e5a305e227db2ec78a46d1762907493;hpb=e291c4cef087ba1afa6d0ff026fb37b55b209e74 diff --git a/darcs-all b/darcs-all index 186771e..8b2a68a 100644 --- a/darcs-all +++ b/darcs-all @@ -4,11 +4,17 @@ set -e top_dirs="nofib testsuite" -default_repo_root="http://darcs.haskell.org/ghc-6.6/" -default_lib_repo_root=$default_repo_root/packages - -default_extra_repo_root="http://darcs.haskell.org/" -default_extra_lib_repo_root=$default_extra_repo_root/packages +# Figure out where to get the other repositories from, +# based on where this GHC repo came from. +defaultrepo=`cat _darcs/prefs/defaultrepo` +case $defaultrepo in + http://* | *@*:*) + defaultrepo_base="`echo $defaultrepo | sed 's!/ghc$!!'`" + defaultrepo_lib="$defaultrepo_base"/packages;; + /*) + defaultrepo_base="$defaultrepo" + defaultrepo_lib="$defaultrepo"/libraries;; +esac quiet=NO @@ -44,39 +50,50 @@ darcsall() darcsget() { case $* in - *--partial*) ;; - *) echo "warning: adding --partial, to override use --complete" + *--complete*|*--partial*) + additional_flag="" ;; + *) + echo "warning: adding --partial, to override use --complete" + additional_flag="--partial" ;; 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 + if test "$nofib" = "YES"; then + if test -d nofib; then + echo "warning: nofib already present; omitting" + else + repo="$defaultrepo_base"/nofib + message "== running darcs get $additional_flag $* $repo" + darcs get $additional_flag $* $repo + fi + fi - for pkg in `cat core-packages`; do - if test -d $pkg; then - echo "warning: $pkg already present; omitting" + if test "$testsuite" = "YES"; then + if test -d testsuite; then + echo "warning: testsuite already present; omitting" else - repo=$lib_repos/$pkg - message "== running darcs get --partial $* $repo" - darcs get --partial $* $repo + repo="$defaultrepo_base"/testsuite + message "== running darcs get $additional_flag $* $repo" + darcs get $additional_flag $* $repo fi - done + fi + + cd libraries if test "$extra" = "YES"; then - for pkg in `cat extra-packages`; do + packages=`cat core-packages extra-packages` + else + packages=`cat core-packages` + fi + + for pkg in $packages; do if test -d $pkg; then echo "warning: $pkg already present; omitting" else - repo=$default_extra_lib_repo_root/$pkg - message "== running darcs get --partial $* $repo" - darcs get --partial $* $repo + repo=$defaultrepo_lib/$pkg + message "== running darcs get $additional_flag $* $repo" + darcs get $additional_flag $* $repo fi done - fi } if test ! -d _darcs -o ! -d compiler; then @@ -90,10 +107,23 @@ esac # --extra says we grab the extra libs with 'get'. It has no effect on # the other commands. -extra=NO; -case $1 in - --extra) shift; extra=YES; -esac +extra=NO +# --nofib/--testsuite tell get to also grab the respective repos. +# They have no effect on the other commands. +nofib=NO +testsuite=NO + +args_done=NO + +while [ "$args_done" == NO ] +do + case $1 in + --extra) shift; extra=YES;; + --nofib) shift; nofib=YES;; + --testsuite) shift; testsuite=YES;; + *) args_done=YES;; + esac +done case $1 in get) shift; darcsget $*;;