diff --git a/collects/meta/web/build.rkt b/collects/meta/web/build.rkt index 716b4aaa0b..958dc4143a 100755 --- a/collects/meta/web/build.rkt +++ b/collects/meta/web/build.rkt @@ -13,8 +13,10 @@ exec "$exe" "$0" "$@" "config.rkt" "navbar.rkt") (define build-mode #f) +(define output-dir (current-directory)) (define distribute? #f) (define warn? #t) +(define extra-file #f) (command-line #:once-any @@ -31,36 +33,46 @@ exec "$exe" "$0" "$@" " (defaults to the current directory)" (unless (directory-exists? dir) (printf "Creating \"~a\"\n" dir) (make-directory dir)) - (current-directory dir)] + (set! output-dir dir)] [("-f") "avoid warning about directory cleanup" (set! warn? #f)] [("-d" "--dist") "distribute resulting content" " (will only work with the right access to the servers)" - (set! distribute? #t)]) + (set! distribute? #t)] + [("-e" "--extra") extra + "extra file to render more content" + (set! extra-file extra)]) (unless build-mode (raise-user-error 'build "build mode not specified")) (define-runtime-path here ".") -(let ([build (file-or-directory-identity (current-directory))]) +(let ([build (file-or-directory-identity output-dir)]) (let loop ([dir here]) (if (equal? build (file-or-directory-identity dir)) (raise-user-error 'build "might clobber sources, refusing to build") (let-values ([(base name dir?) (split-path dir)]) (when base (loop base)))))) -(let ([paths (sort (map path->string (directory-list)) stringstring (directory-list)) string