www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 37b51c6b7b78b67939e1ef7990ce263b14099321
parent 9b579f598d2f376c70fb16ecffeb87f3e315fe69
Author: Matthew Flatt <mflatt@racket-lang.org>
Date:   Mon, 10 Mar 2014 17:19:36 -0600

distro-build: refine client--server split

original commit: df857e1c76d6420684446ac92555ef709c673c8d

Diffstat:
Dpkgs/distro-build-pkgs/distro-build-client/install-for-docs.rkt | 70----------------------------------------------------------------------
Mpkgs/distro-build-pkgs/distro-build-client/set-config.rkt | 84++++++++++++++++++++++++++++++++++++-------------------------------------------
Rpkgs/distro-build-pkgs/distro-build-client/config.rkt -> pkgs/distro-build-pkgs/distro-build-server/config.rkt | 0
Apkgs/distro-build-pkgs/distro-build-server/install-for-docs.rkt | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rpkgs/distro-build-pkgs/distro-build-client/install-pkgs.rkt -> pkgs/distro-build-pkgs/distro-build-server/install-pkgs.rkt | 0
Rpkgs/distro-build-pkgs/distro-build-client/readme.rkt -> pkgs/distro-build-pkgs/distro-build-server/readme.rkt | 0
Apkgs/distro-build-pkgs/distro-build-server/set-server-config.rkt | 33+++++++++++++++++++++++++++++++++
Rpkgs/distro-build-pkgs/distro-build-client/url-options.rkt -> pkgs/distro-build-pkgs/distro-build-server/url-options.rkt | 0
8 files changed, 141 insertions(+), 116 deletions(-)

diff --git a/pkgs/distro-build-pkgs/distro-build-client/install-for-docs.rkt b/pkgs/distro-build-pkgs/distro-build-client/install-for-docs.rkt @@ -1,70 +0,0 @@ -#lang racket/base -(require racket/cmdline - racket/file - racket/string - racket/system - compiler/find-exe - (only-in "config.rkt" extract-options) - "display-time.rkt") - -(module test racket/base) - -(define-values (dir config-file config-mode default-pkgs catalogs) - (command-line - #:args - (dir config-file config-mode default-pkgs . catalog) - (values dir config-file config-mode default-pkgs catalog))) - -(define config (extract-options config-file config-mode)) - -(define pkgs - (or (hash-ref config '#:pkgs #f) - (string-split default-pkgs))) - -(define (build-path/s . a) - (path->string (path->complete-path (apply build-path dir a)))) -(define (build-path/f . a) - (string-append "file://" - (path->string (path->complete-path (apply build-path a))))) - -(define ht - (hash 'doc-dir (build-path/s "doc") - 'lib-dir (build-path/s "lib") - 'share-dir (build-path/s "share") - 'dll-dir (build-path/s "lib") - 'links-file (build-path/s "share" "links.rktd") - 'pkgs-dir (build-path/s "share" "pkgs") - 'bin-dir (build-path/s "bin") - 'include-dir (build-path/s "include") - 'catalogs (map build-path/f catalogs))) - -(make-directory* (build-path dir "etc")) - -(call-with-output-file* - (build-path dir "etc" "config.rktd") - #:exists 'truncate/replace - (lambda (o) - (write ht o) - (newline o))) - -(display-time) -(printf "Running `raco pkg install' for packages:\n") -(for ([pkg (in-list pkgs)]) - (printf " ~a\n" pkg)) -(unless (apply system* (find-exe) - "-G" "build/docs/etc" "-l-" - "raco" "pkg" "install" - "--pkgs" - "-i" "--deps" "search-auto" - pkgs) - (error "install failed")) - -(when (hash-ref config '#:pdf-doc? #f) - (display-time) - (printf "Running `raco setup' PDF documentation:\n") - (unless (system* (find-exe) - "-G" "build/docs/etc" "-l-" - "raco" "setup" "--doc-pdf" "build/pdf-doc") - (error "PDF failed"))) - -(display-time) diff --git a/pkgs/distro-build-pkgs/distro-build-client/set-config.rkt b/pkgs/distro-build-pkgs/distro-build-client/set-config.rkt @@ -1,57 +1,49 @@ #lang racket/base (require racket/cmdline racket/file - racket/path - (only-in "config.rkt" extract-options) - "url-options.rkt") + racket/path) + +(provide set-config) (module test racket/base) -(define-values (dest-config-file config-file config-mode - install-name build-stamp - default-doc-search default-catalogs) +(module+ main (command-line #:args - (dest-config-file config-file config-mode - install-name build-stamp + (dest-config-file install-name build-stamp doc-search . catalog) - (values dest-config-file config-file config-mode - install-name build-stamp - doc-search catalog))) - -(define config (if (equal? config-file "") - (hash) - (extract-options config-file config-mode))) - -(define doc-search (choose-doc-search config default-doc-search)) - -(define catalogs (choose-catalogs config default-catalogs)) + (set-config dest-config-file + install-name build-stamp + doc-search catalog))) -(define orig - (if (file-exists? dest-config-file) - (call-with-input-file* dest-config-file read) - (hash))) +(define (set-config dest-config-file + install-name build-stamp + doc-search catalogs) + (define orig + (if (file-exists? dest-config-file) + (call-with-input-file* dest-config-file read) + (hash))) -(let* ([table orig] - [table - (if (equal? doc-search "") - table - (hash-set table 'doc-search-url doc-search))] - [table (if (equal? catalogs '("")) - table - (hash-set table 'catalogs - (for/list ([c (in-list catalogs)]) - (if (equal? c "") - #f - c))))] - [table (if (equal? install-name "") - table - (hash-set table 'installation-name install-name))] - [table (hash-set table 'build-stamp build-stamp)]) - (unless (equal? table orig) - (make-directory* (path-only dest-config-file)) - (call-with-output-file dest-config-file - #:exists 'truncate - (lambda (o) - (write table o) - (newline o))))) + (let* ([table orig] + [table + (if (equal? doc-search "") + table + (hash-set table 'doc-search-url doc-search))] + [table (if (equal? catalogs '("")) + table + (hash-set table 'catalogs + (for/list ([c (in-list catalogs)]) + (if (equal? c "") + #f + c))))] + [table (if (equal? install-name "") + table + (hash-set table 'installation-name install-name))] + [table (hash-set table 'build-stamp build-stamp)]) + (unless (equal? table orig) + (make-directory* (path-only dest-config-file)) + (call-with-output-file dest-config-file + #:exists 'truncate + (lambda (o) + (write table o) + (newline o)))))) diff --git a/pkgs/distro-build-pkgs/distro-build-client/config.rkt b/pkgs/distro-build-pkgs/distro-build-server/config.rkt diff --git a/pkgs/distro-build-pkgs/distro-build-server/install-for-docs.rkt b/pkgs/distro-build-pkgs/distro-build-server/install-for-docs.rkt @@ -0,0 +1,70 @@ +#lang racket/base +(require racket/cmdline + racket/file + racket/string + racket/system + compiler/find-exe + (only-in "config.rkt" extract-options) + distro-build/display-time) + +(module test racket/base) + +(define-values (dir config-file config-mode default-pkgs catalogs) + (command-line + #:args + (dir config-file config-mode default-pkgs . catalog) + (values dir config-file config-mode default-pkgs catalog))) + +(define config (extract-options config-file config-mode)) + +(define pkgs + (or (hash-ref config '#:pkgs #f) + (string-split default-pkgs))) + +(define (build-path/s . a) + (path->string (path->complete-path (apply build-path dir a)))) +(define (build-path/f . a) + (string-append "file://" + (path->string (path->complete-path (apply build-path a))))) + +(define ht + (hash 'doc-dir (build-path/s "doc") + 'lib-dir (build-path/s "lib") + 'share-dir (build-path/s "share") + 'dll-dir (build-path/s "lib") + 'links-file (build-path/s "share" "links.rktd") + 'pkgs-dir (build-path/s "share" "pkgs") + 'bin-dir (build-path/s "bin") + 'include-dir (build-path/s "include") + 'catalogs (map build-path/f catalogs))) + +(make-directory* (build-path dir "etc")) + +(call-with-output-file* + (build-path dir "etc" "config.rktd") + #:exists 'truncate/replace + (lambda (o) + (write ht o) + (newline o))) + +(display-time) +(printf "Running `raco pkg install' for packages:\n") +(for ([pkg (in-list pkgs)]) + (printf " ~a\n" pkg)) +(unless (apply system* (find-exe) + "-G" "build/docs/etc" "-l-" + "raco" "pkg" "install" + "--pkgs" + "-i" "--deps" "search-auto" + pkgs) + (error "install failed")) + +(when (hash-ref config '#:pdf-doc? #f) + (display-time) + (printf "Running `raco setup' PDF documentation:\n") + (unless (system* (find-exe) + "-G" "build/docs/etc" "-l-" + "raco" "setup" "--doc-pdf" "build/pdf-doc") + (error "PDF failed"))) + +(display-time) diff --git a/pkgs/distro-build-pkgs/distro-build-client/install-pkgs.rkt b/pkgs/distro-build-pkgs/distro-build-server/install-pkgs.rkt diff --git a/pkgs/distro-build-pkgs/distro-build-client/readme.rkt b/pkgs/distro-build-pkgs/distro-build-server/readme.rkt diff --git a/pkgs/distro-build-pkgs/distro-build-server/set-server-config.rkt b/pkgs/distro-build-pkgs/distro-build-server/set-server-config.rkt @@ -0,0 +1,33 @@ +#lang racket/base +(require racket/cmdline + racket/file + racket/path + (only-in "config.rkt" extract-options) + "url-options.rkt" + distro-build/set-config) + +(module test racket/base) + +(define-values (dest-config-file config-file config-mode + install-name build-stamp + default-doc-search default-catalogs) + (command-line + #:args + (dest-config-file config-file config-mode + install-name build-stamp + doc-search . catalog) + (values dest-config-file config-file config-mode + install-name build-stamp + doc-search catalog))) + +(define config (if (equal? config-file "") + (hash) + (extract-options config-file config-mode))) + +(define doc-search (choose-doc-search config default-doc-search)) + +(define catalogs (choose-catalogs config default-catalogs)) + +(set-config dest-config-file + install-name build-stamp + doc-search catalogs) diff --git a/pkgs/distro-build-pkgs/distro-build-client/url-options.rkt b/pkgs/distro-build-pkgs/distro-build-server/url-options.rkt