X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=darcs-all;h=2fd61a84bacd687d29893a57a3e2934c513e317d;hb=c520a3a2752ffcec5710a88a8a2e219c20edfc8a;hp=9906495313b76f06204bdb7408eafa59e9b60b70;hpb=60d9fc0b9ff51cef0a7895a399410f50dc52b970;p=ghc-hetmet.git diff --git a/darcs-all b/darcs-all index 9906495..2fd61a8 100644 --- a/darcs-all +++ b/darcs-all @@ -1,23 +1,37 @@ #!/bin/sh +set -e + top_dirs="nofib testsuite" +default_repo_root="http://darcs.haskell.org/" +default_lib_repo_root=$default_repo_root/packages + +quiet=NO + +function message() +{ + if [ "$quiet" = "NO" ]; then + echo $* + fi +} + function darcsall() { + message "== running darcs $* at the top level" + darcs $* for dir in $top_dirs; do if test -d $dir -a -d $dir/_darcs; then - echo "== running darcs $* in $dir" - (cd $dir && darcs $*) + message "== running darcs $* in $dir" + darcs $* --repodir $dir else - echo "== $dir not present or not a repository; skipping" + message "== $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 $*) + for pkg in `cat libraries/default-packages`; do + if test -d libraries/$pkg; then + message "== running darcs $* in libraries/$pkg" + darcs $* --repodir libraries/$pkg else echo "warning: $dir doesn't seem to exist, use 'darcs-all get' to get it" fi @@ -31,12 +45,19 @@ function darcsget() *) echo "warning: adding --partial, to override use --complete" 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 - for repo in `cat default-packages`; do - if test -d `basename $repo`; then - echo "warning: `basename $repo` already present; omitting" + for pkg in `cat default-packages`; do + if test -d $pkg; then + echo "warning: $pkg already present; omitting" else - echo "== running darcs get --partial $* $repo" + repo=$lib_repos/$pkg + message "== running darcs get --partial $* $repo" darcs get --partial $* $repo fi done @@ -47,9 +68,13 @@ if test ! -d _darcs -o ! -d ghc; then exit 1; fi +case $* in + *-q*) quiet=YES;; +esac + case $1 in - push) darcsall $*;; - pull) darcsall $*;; get) shift; darcsget $*;; - *) echo "syntax: ./darcs-all push|pull"; exit 1;; + # Hack around whatsnew failing if there are no changes + w|wh|wha|what|whats|whatsn|whatsne|whatsnew) set +e; darcsall $*;; + *) darcsall $*;; esac