tools.deploy.*: refactoring to not use dynamic variables in make-deploy-image

locals-and-roots
Björn Lindqvist 2016-04-02 04:56:04 +02:00
parent 3ef33708ae
commit 047be9cd52
5 changed files with 36 additions and 37 deletions

View File

@ -1,4 +1,4 @@
USING: kernel pcre sequences tools.deploy.backend tools.test ;
USING: pcre sequences tools.deploy.backend tools.test ;
IN: tools.deploy.backend.tests
: complete-match? ( str regexp -- ? )

View File

@ -1,15 +1,10 @@
! Copyright (C) 2007, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: namespaces make continuations.private kernel.private init
assocs kernel vocabs words sequences memory io system arrays
continuations math definitions mirrors splitting parser classes
summary layouts vocabs.loader prettyprint.config prettyprint debugger
io.streams.c io.files io.files.temp io.pathnames io.directories
io.directories.hierarchy io.backend quotations io.launcher
tools.deploy.config tools.deploy.config.editor bootstrap.image
io.encodings.utf8 destructors accessors hashtables
tools.deploy.libraries vocabs.metadata.resources
tools.deploy.embed locals ;
USING: accessors assocs bootstrap.image hashtables io io.directories
io.encodings.utf8 io.files io.files.temp io.launcher io.pathnames
kernel locals make namespaces prettyprint sequences splitting system
tools.deploy.config tools.deploy.config.editor tools.deploy.embed
tools.deploy.libraries vocabs.loader vocabs.metadata.resources ;
IN: tools.deploy.backend
: copy-vm ( executable bundle-name -- vm-path )
@ -49,18 +44,6 @@ ERROR: can't-deploy-library-file library ;
my-boot-image-name resource-path exists?
[ make-my-image ] unless ;
: bootstrap-profile ( -- profile )
[
deploy-math? get [ "math" , ] when
deploy-threads? get [ "threads" , ] when
"compiler" ,
deploy-help? get [ "help" , ] when
native-io? [ "io" , ] when
deploy-ui? get [ "ui" , ] when
deploy-unicode? get [ "unicode" , ] when
] { } make ;
: staging-image-name ( profile -- name )
"-" join "." my-arch-name 3append
"staging." ".image" surround cache-file ;
@ -126,14 +109,14 @@ DEFER: ?make-staging-image
:: make-deploy-image ( vm image vocab config -- manifest )
make-boot-image
config [
bootstrap-profile :> profile
vocab "vocab-manifest-" prepend temp-file :> manifest-file
image vocab manifest-file profile deploy-command-line :> flags
profile ?make-staging-image
vm flags run-factor
manifest-file parse-vocab-manifest-file
] with-variables ;
config config>profile :> profile
vocab "vocab-manifest-" prepend temp-file :> manifest-file
image vocab manifest-file profile deploy-command-line :> flags
profile ?make-staging-image
vm flags run-factor
manifest-file parse-vocab-manifest-file ;
:: make-deploy-image-executable ( vm image vocab config -- manifest )
vm image vocab config make-deploy-image

View File

@ -0,0 +1,6 @@
USING: tools.deploy.config tools.test ;
IN: tools.deploy.config.tests
{ { "math" "threads" "compiler" "io" } } [
"hello-ui" default-config config>profile
] unit-test

View File

@ -1,6 +1,7 @@
! Copyright (C) 2007, 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: assocs hashtables kernel math namespaces vocabs ;
USING: assocs combinators.smart hashtables kernel math namespaces
sequences vocabs ;
IN: tools.deploy.config
SYMBOL: deploy-name
@ -69,3 +70,14 @@ SYMBOL: deploy-image
SYMBOL: deploy-directory
"resource:" deploy-directory set-global
: config>profile ( config -- profile )
{
[ deploy-math? of "math" f ? ]
[ deploy-threads? of "threads" f ? ]
[ drop "compiler" ]
[ deploy-help? of "help" f ? ]
[ deploy-io of 3 = "io" f ? ]
[ deploy-ui? of "ui" f ? ]
[ deploy-unicode? of "unicode" f ? ]
} cleave>array sift ;

View File

@ -37,10 +37,8 @@ delete-staging-images
{ } [ "hello-ui" shake-and-bake 2242000 small-enough? ] unit-test
{ "math-threads-compiler-io-ui" } [
"hello-ui" deploy-config [
bootstrap-profile staging-image-name file-name
"." split second
] with-variables
"hello-ui" deploy-config config>profile
staging-image-name file-name "." split second
] unit-test
! [ ] [ "maze" shake-and-bake 1520000 small-enough? ] unit-test
@ -157,7 +155,7 @@ os macosx? [
{ t } [
"tools.deploy.test.18" shake-and-bake
deploy-test-command ascii [ readln ] with-process-reader
test-image temp-file =
test-image-path =
] unit-test
{ } [ "resource:LICENSE.txt" "license.txt" temp-file copy-file ] unit-test