From 5efd9972267f277fa6ec56fd6363b63e028c67a2 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 12 Mar 2014 05:36:30 -0600 Subject: [PATCH] meta/new-web: minor repairs and sync script --- pkgs/plt-services/meta/new-web/README | 8 ++++ .../meta/new-web/download/symlinks.rkt | 29 +++++++++++ pkgs/plt-services/meta/new-web/minis/pre.rkt | 11 +++-- pkgs/plt-services/meta/new-web/sync.rkt | 48 +++++++++++++++++++ .../meta/new-web/www/resources.rkt | 2 +- 5 files changed, 92 insertions(+), 6 deletions(-) create mode 100644 pkgs/plt-services/meta/new-web/sync.rkt diff --git a/pkgs/plt-services/meta/new-web/README b/pkgs/plt-services/meta/new-web/README index 2e4ae7d35a..b20702784b 100644 --- a/pkgs/plt-services/meta/new-web/README +++ b/pkgs/plt-services/meta/new-web/README @@ -36,3 +36,11 @@ To build: * Set the $GIT_DIR environment variable to point to the ".git" directory of a Racket repository if you want to extract release information from a repository other than the enclosing one. + +To upload: +========== + +* You'll need credentials to upload to S3, and those credentials + should be in "~/.aws-keys". + +* Run the "sync.rkt" script: racket -l meta/new-web/sync diff --git a/pkgs/plt-services/meta/new-web/download/symlinks.rkt b/pkgs/plt-services/meta/new-web/download/symlinks.rkt index 56bb372e9c..9e07a2d6a9 100644 --- a/pkgs/plt-services/meta/new-web/download/symlinks.rkt +++ b/pkgs/plt-services/meta/new-web/download/symlinks.rkt @@ -1,10 +1,13 @@ #lang plt-web (require "resources.rkt" "data.rkt" + plt-web/indexes version/utils) (provide (all-defined-out)) +(define download-index-site (index-site download-site)) + ;; For versions 5.92 and later, redirect "installers/" ;; and "docs//..." to "releases//..." (for ([r (in-list all-releases)]) @@ -19,3 +22,29 @@ (symlink #:site download-site (format "../../releases/~a/pdf-doc" v) (format "docs/~a/pdf" v)))) + +;; We generally expect "index.html" files to be in place in "releases" +;; and for pre-v6.0 "docs", but keep "installers", "docs", and +;; "releases" directory lists up-to-date as we add new versions: +(for ([r (in-list all-releases)]) + (define v (release-version r)) + (index-page download-index-site + (format "docs/~a" v) + '(("html" . dir) + ("pdf" . dir)))) +(void + (index-page download-index-site + "installers" + (for/list ([r (in-list all-releases)]) + (cons (release-version r) 'dir)))) +(void + (index-page download-index-site + "docs" + (for/list ([r (in-list all-releases)]) + (cons (release-version r) 'dir)))) +(void + (index-page download-index-site + "releases" + (for/list ([r (in-list all-releases)] + #:when (version<=? "5.92" (release-version r))) + (cons (release-version r) 'dir)))) diff --git a/pkgs/plt-services/meta/new-web/minis/pre.rkt b/pkgs/plt-services/meta/new-web/minis/pre.rkt index 29c4a9ad33..b3d0a36529 100644 --- a/pkgs/plt-services/meta/new-web/minis/pre.rkt +++ b/pkgs/plt-services/meta/new-web/minis/pre.rkt @@ -13,9 +13,10 @@ (register-identity pre-site) -(define (main id) +(define (main path) @page[#:site pre-site - #:id id + #:file path + #:title "Racket Snapshots" #:width 'full]{ @columns[10 #:center? #t #:row? #t #:center-text? #f]{ @h3{Snapshot Builds}} @@ -25,7 +26,7 @@ @li{@a[href: "http://plt.eecs.northwestern.edu/snapshots/"]{ Northwestern University}}}}}) -;; Generate at both "installers.html" (traditional path) +;; Generate at both "installers/" (traditional path) ;; and "index.html" (old entry point, now subsumed) -(define installers (main 'installers)) -(void (main 'index)) +(define installers (main "installers/index.html")) +(void (main "index.html")) diff --git a/pkgs/plt-services/meta/new-web/sync.rkt b/pkgs/plt-services/meta/new-web/sync.rkt new file mode 100644 index 0000000000..da999922dd --- /dev/null +++ b/pkgs/plt-services/meta/new-web/sync.rkt @@ -0,0 +1,48 @@ +#lang racket/load + +;; This script uses the "s3-sync" package, even though the enclosing +;; package does not depend on it, and this module is written with +;; `racket/load` to avoid the dependency. +(require s3-sync) + +(define (step . s) + (displayln (make-string 72 #\=)) + (for-each displayln s) + (displayln (make-string 72 #\-))) + +(define orig-dir (current-directory)) +(define tmp-dir (make-temporary-file "sync~a" 'directory)) + +(current-directory tmp-dir) + +;; ---------------------------------------- + +(step "Generate web pages") +(parameterize ([current-namespace (make-base-namespace)] + [current-command-line-arguments (vector "-w" + "-o" "generated" + "-f")]) + (dynamic-require 'meta/new-web/all #f) + (dynamic-require '(submod meta/new-web/all main) #f)) + +(define (upload dir site) + (step (format "Uploading ~a" site)) + (s3-sync (build-path "generated" dir) + site + #f + #:upload? #t + #:reduced-redundancy? #t + #:acl "public-read" + #:link-mode 'redirect + #:log displayln)) +(upload "www" "racket-lang.org") +(upload "www" "www.racket-lang.org") +(upload "pre" "pre.racket-lang.org") +(upload "con" "con.racket-lang.org") +(upload "drracket" "www.drracket.org") +(upload "download" "download.racket-lang.org") + +;; ---------------------------------------- + +(current-directory orig-dir) +(delete-directory/files tmp-dir) diff --git a/pkgs/plt-services/meta/new-web/www/resources.rkt b/pkgs/plt-services/meta/new-web/www/resources.rkt index 63ca2af1b9..f565031d88 100644 --- a/pkgs/plt-services/meta/new-web/www/resources.rkt +++ b/pkgs/plt-services/meta/new-web/www/resources.rkt @@ -7,7 +7,7 @@ (define www-site (site "www" - #:url (rewrite-for-testing "http://www.racket-lang.org/") + #:url (rewrite-for-testing "http://racket-lang.org/") #:page-headers (identity-headers) #:navigation (list