From d8f8dfe9b72e521b6b91507544cf8d1709774485 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Sat, 5 Jun 2010 12:38:40 -0400 Subject: [PATCH] Initial web content & build script. --- collects/meta/props | 1 + collects/meta/web/build.rkt | 70 ++++++++ collects/meta/web/config.rkt | 8 + collects/meta/web/download/index.rkt | 6 + collects/meta/web/download/main.rkt | 4 + collects/meta/web/download/shared.rkt | 5 + collects/meta/web/navbar.rkt | 5 + collects/meta/web/stubs/blog.rkt | 7 + collects/meta/web/stubs/git.rkt | 6 + collects/meta/web/stubs/pre.rkt | 11 ++ collects/meta/web/stubs/shared.rkt | 5 + collects/meta/web/www/community.rkt | 64 +++++++ collects/meta/web/www/help.rkt | 40 +++++ collects/meta/web/www/index.rkt | 6 + collects/meta/web/www/main.rkt | 5 + collects/meta/web/www/new-name.rkt | 179 ++++++++++++++++++++ collects/meta/web/www/outreach+research.rkt | 90 ++++++++++ collects/meta/web/www/shared.rkt | 5 + 18 files changed, 517 insertions(+) create mode 100755 collects/meta/web/build.rkt create mode 100644 collects/meta/web/config.rkt create mode 100644 collects/meta/web/download/index.rkt create mode 100644 collects/meta/web/download/main.rkt create mode 100644 collects/meta/web/download/shared.rkt create mode 100644 collects/meta/web/navbar.rkt create mode 100644 collects/meta/web/stubs/blog.rkt create mode 100644 collects/meta/web/stubs/git.rkt create mode 100644 collects/meta/web/stubs/pre.rkt create mode 100644 collects/meta/web/stubs/shared.rkt create mode 100644 collects/meta/web/www/community.rkt create mode 100644 collects/meta/web/www/help.rkt create mode 100644 collects/meta/web/www/index.rkt create mode 100644 collects/meta/web/www/main.rkt create mode 100644 collects/meta/web/www/new-name.rkt create mode 100644 collects/meta/web/www/outreach+research.rkt create mode 100644 collects/meta/web/www/shared.rkt diff --git a/collects/meta/props b/collects/meta/props index f8136e49b0..b22d672878 100755 --- a/collects/meta/props +++ b/collects/meta/props @@ -976,6 +976,7 @@ path/s is either such a string or a list of them. "collects/meta/check-dists.rkt" drdr:command-line #f "collects/meta/contrib/completion/racket-completion.bash" responsible (samth sstrickl) drdr:command-line #f "collects/meta/drdr" responsible (jay) drdr:command-line #f +"collects/meta/web/build.rkt" drdr:command-line #f "collects/mred" responsible (mflatt) "collects/mred/edit-main.rkt" drdr:command-line (mzc *) "collects/mred/edit.rkt" drdr:command-line (gracket-text "-t" *) diff --git a/collects/meta/web/build.rkt b/collects/meta/web/build.rkt new file mode 100755 index 0000000000..5e3c9367b0 --- /dev/null +++ b/collects/meta/web/build.rkt @@ -0,0 +1,70 @@ +#!/bin/sh +#| +exe="racket"; +if [ -x "$PLTHOME/bin/racket" ]; then exe="$PLTHOME/bin/racket"; fi +exec "$exe" "$0" "$@" +|# + +#lang racket/base + +(require racket/cmdline racket/runtime-path + racket/string racket/file + "html/resource.rkt" "config.rkt" "navbar.rkt") + +(define build-mode #f) +(define distribute? #f) +(define warn? #t) + +(command-line + #:once-any + [("-l" "--local") + "create content that is viewable in the build directory" + " (all links are relative) " + (set! build-mode 'local)] + [("-w" "--web") + "create content that is viewable on the Racket web pages" + (set! build-mode 'web)] + #:once-each + [("-o" "--output") dir + "output directory" + " (defaults to the current directory)" + (unless (directory-exists? dir) + (printf "Creating \"~a\"\n" dir) (make-directory dir)) + (current-directory 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)]) + +(unless build-mode (raise-user-error 'build "build mode not specified")) + +(define-runtime-path here ".") +(let ([build (file-or-directory-identity (current-directory))]) + (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)) string