meta/pkg-build: add #:extra-packages
option
This commit is contained in:
parent
8d18d5eceb
commit
56c3dbf676
|
@ -188,6 +188,13 @@
|
||||||
;; Catalogs of packages to build (via an archive):
|
;; Catalogs of packages to build (via an archive):
|
||||||
#:pkg-catalogs [pkg-catalogs (list "http://pkgs.racket-lang.org/")]
|
#:pkg-catalogs [pkg-catalogs (list "http://pkgs.racket-lang.org/")]
|
||||||
|
|
||||||
|
;; Extra packages to install within an installation so that
|
||||||
|
;; they're treated like packages included in the installer;
|
||||||
|
;; these should be built packages (normally from the snapshot
|
||||||
|
;; site), or else the generated build packages will not work
|
||||||
|
;; right (especially when using multiple VMs):
|
||||||
|
#:extra-packages [extra-packages null]
|
||||||
|
|
||||||
;; Steps that you want to include; you can skip steps
|
;; Steps that you want to include; you can skip steps
|
||||||
;; at the beginning if you know they're already done, and
|
;; at the beginning if you know they're already done, and
|
||||||
;; you can skip tests at the end if you don't want them:
|
;; you can skip tests at the end if you don't want them:
|
||||||
|
@ -317,8 +324,23 @@
|
||||||
(parameterize ([current-pkg-catalogs (list (path->url (build-path archive-dir "catalog")))])
|
(parameterize ([current-pkg-catalogs (list (path->url (build-path archive-dir "catalog")))])
|
||||||
(get-all-pkg-details-from-catalogs)))
|
(get-all-pkg-details-from-catalogs)))
|
||||||
|
|
||||||
(define (install vm #:one-time? [one-time? #f])
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
|
(status "Starting server at locahost:~a for ~a\n" server-port archive-dir)
|
||||||
|
|
||||||
|
(define server
|
||||||
|
(thread
|
||||||
|
(lambda ()
|
||||||
|
(serve/servlet
|
||||||
|
(lambda args #f)
|
||||||
|
#:command-line? #t
|
||||||
|
#:listen-ip "localhost"
|
||||||
|
#:extra-files-paths (list server-dir)
|
||||||
|
#:servlet-regexp #rx"$." ; never match
|
||||||
|
#:port server-port))))
|
||||||
|
(sync (system-idle-evt))
|
||||||
|
|
||||||
|
;; ----------------------------------------
|
||||||
|
(define (install vm #:one-time? [one-time? #f])
|
||||||
(status "Starting VM ~a\n" (vm-name vm))
|
(status "Starting VM ~a\n" (vm-name vm))
|
||||||
(stop-vbox-vm (vm-name vm))
|
(stop-vbox-vm (vm-name vm))
|
||||||
(restore-vbox-snapshot (vm-name vm) (vm-init-snapshot vm))
|
(restore-vbox-snapshot (vm-name vm) (vm-init-snapshot vm))
|
||||||
|
@ -347,14 +369,6 @@
|
||||||
(scp vm pkg-adds-rkt (at-vm vm (~a there-dir "/pkg-adds.rkt")))
|
(scp vm pkg-adds-rkt (at-vm vm (~a there-dir "/pkg-adds.rkt")))
|
||||||
(scp vm pkg-list-rkt (at-vm vm (~a there-dir "/pkg-list.rkt")))
|
(scp vm pkg-list-rkt (at-vm vm (~a there-dir "/pkg-list.rkt")))
|
||||||
|
|
||||||
(when one-time?
|
|
||||||
;; ----------------------------------------
|
|
||||||
(status "Getting installed packages\n")
|
|
||||||
(ssh vm (cd-racket vm)
|
|
||||||
" && bin/racket ../pkg-list.rkt > ../pkg-list.rktd")
|
|
||||||
(scp vm (at-vm vm (~a there-dir "/pkg-list.rktd"))
|
|
||||||
(build-path work-dir "install-list.rktd")))
|
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
(status "Setting catalogs at ~a\n" (vm-name vm))
|
(status "Setting catalogs at ~a\n" (vm-name vm))
|
||||||
(ssh vm (cd-racket vm)
|
(ssh vm (cd-racket vm)
|
||||||
|
@ -362,7 +376,21 @@
|
||||||
" http://localhost:" server-port "/built/catalog/"
|
" http://localhost:" server-port "/built/catalog/"
|
||||||
" http://localhost:" server-port "/archive/catalog/")
|
" http://localhost:" server-port "/archive/catalog/")
|
||||||
|
|
||||||
|
;; ----------------------------------------
|
||||||
|
(unless (null? extra-packages)
|
||||||
|
(status "Extra package installs at ~a\n" (vm-name vm))
|
||||||
|
(ssh vm (cd-racket vm)
|
||||||
|
" && bin/raco pkg install -i --auto"
|
||||||
|
" " (apply ~a #:separator " " extra-packages)))
|
||||||
|
|
||||||
(when one-time?
|
(when one-time?
|
||||||
|
;; ----------------------------------------
|
||||||
|
(status "Getting installed packages\n")
|
||||||
|
(ssh vm (cd-racket vm)
|
||||||
|
" && bin/racket ../pkg-list.rkt > ../pkg-list.rktd")
|
||||||
|
(scp vm (at-vm vm (~a there-dir "/pkg-list.rktd"))
|
||||||
|
(build-path work-dir "install-list.rktd"))
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
(status "Stashing installation docs\n")
|
(status "Stashing installation docs\n")
|
||||||
(ssh vm (cd-racket vm)
|
(ssh vm (cd-racket vm)
|
||||||
|
@ -583,21 +611,6 @@
|
||||||
(set-subtract try-pkgs need-pkgs)
|
(set-subtract try-pkgs need-pkgs)
|
||||||
failed-pkgs)))
|
failed-pkgs)))
|
||||||
|
|
||||||
;; ----------------------------------------
|
|
||||||
(status "Starting server at locahost:~a for ~a\n" server-port archive-dir)
|
|
||||||
|
|
||||||
(define server
|
|
||||||
(thread
|
|
||||||
(lambda ()
|
|
||||||
(serve/servlet
|
|
||||||
(lambda args #f)
|
|
||||||
#:command-line? #t
|
|
||||||
#:listen-ip "localhost"
|
|
||||||
#:extra-files-paths (list server-dir)
|
|
||||||
#:servlet-regexp #rx"$." ; never match
|
|
||||||
#:port server-port))))
|
|
||||||
(sync (system-idle-evt))
|
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
(make-directory* (build-path built-dir "adds"))
|
(make-directory* (build-path built-dir "adds"))
|
||||||
(make-directory* fail-dir)
|
(make-directory* fail-dir)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user