distro-build/assemble-site: merge native libraries

original commit: 270ca41e4a3f8d78433c5d4426d55519283dbb9c
This commit is contained in:
Matthew Flatt 2013-07-02 13:17:53 -06:00
parent 5425602294
commit a95ce7aa51

View File

@ -9,6 +9,7 @@
(define dest-dir (build-path build-dir "site")) (define dest-dir (build-path build-dir "site"))
(define built-dir (build-path build-dir "built")) (define built-dir (build-path build-dir "built"))
(define native-dir (build-path build-dir "native"))
(define installers-dir (build-path "installers")) (define installers-dir (build-path "installers"))
(define pkgs-dir (build-path "pkgs")) (define pkgs-dir (build-path "pkgs"))
@ -24,34 +25,45 @@
(define (copy dir [build-dir build-dir]) (define (copy dir [build-dir build-dir])
(make-directory* dest-dir) (make-directory* dest-dir)
(printf "Copying ~s\n" (build-path build-dir dir)) (printf "Copying ~a\n" (build-path build-dir dir))
(copy-directory/files (build-path build-dir dir) (copy-directory/files (build-path build-dir dir)
(build-path dest-dir dir) (build-path dest-dir dir)
#:keep-modify-seconds? #t)) #:keep-modify-seconds? #t))
(delete-directory/files dest-dir #:must-exist? #f) (delete-directory/files dest-dir #:must-exist? #f)
(copy pkgs-dir built-dir)
(printf "Building catalog\n") (define (build-catalog built-dir)
(let ([c-dir (build-path built-dir catalog-dir "pkg")] (printf "Building catalog from ~a\n" built-dir)
[d-dir (build-path dest-dir catalog-dir "pkg")]) (let ([c-dir (build-path built-dir "pkgs")]
(make-directory* d-dir) [d-dir (build-path dest-dir "pkgs")])
(define base-url (string->url (hash-ref config '#:dist-base-url))) (make-directory* d-dir)
(for ([f (in-list (directory-list c-dir))]) (for ([f (directory-list c-dir)])
(define ht (call-with-input-file* (build-path c-dir f) read)) (define c (build-path c-dir f))
(define new-ht (define d (build-path d-dir f))
(hash-set ht 'source (url->string (copy-file c d)
(combine-url/relative (file-or-directory-modify-seconds d (file-or-directory-modify-seconds c))))
base-url (let ([c-dir (build-path built-dir catalog-dir "pkg")]
(path->string [d-dir (build-path dest-dir catalog-dir "pkg")])
(build-path (make-directory* d-dir)
"pkgs" (define base-url (string->url (hash-ref config '#:dist-base-url)))
(path-add-suffix f #".zip"))))))) (for ([f (in-list (directory-list c-dir))])
(call-with-output-file* (define ht (call-with-input-file* (build-path c-dir f) read))
(build-path d-dir f) (define new-ht
(lambda (o) (hash-set ht 'source (url->string
(write new-ht o) (combine-url/relative
(newline o))))) base-url
(path->string
(build-path
"pkgs"
(path-add-suffix f #".zip")))))))
(call-with-output-file*
(build-path d-dir f)
(lambda (o)
(write new-ht o)
(newline o))))))
(build-catalog built-dir)
(build-catalog native-dir)
(copy installers-dir) (copy installers-dir)