Allow access to command line arguments in deployed apps
parent
cfc8b06ac0
commit
21eea4d88c
|
@ -25,7 +25,7 @@ HELP: (command-line)
|
|||
{ $description "Outputs the command line parameters which were passed to the Factor VM on startup." } ;
|
||||
|
||||
HELP: command-line
|
||||
{ $var-description "The command line parameters which follow the name of the script on the command line." } ;
|
||||
{ $var-description "When Factor is run with a script, this variable contains command line parameters which follow the name of the script on the command line. In deployed applications, it contains the entire command line. In all other cases it is set to " { $link f } "." } ;
|
||||
|
||||
HELP: main-vocab-hook
|
||||
{ $var-description "Global variable holding a quotation which outputs a vocabulary name. UI backends set this so that the UI can automatically start if the prerequisites are met (for example, " { $snippet "$DISPLAY" } " being set on X11)." } ;
|
||||
|
@ -139,8 +139,8 @@ $nl
|
|||
|
||||
ARTICLE: "cli" "Command line arguments"
|
||||
"Factor command line usage:"
|
||||
{ $code "factor [system switches...] [script args...]" }
|
||||
"Zero or more system switches can be passed in, followed by an optional script file name. If the script file is specified, it will be run on startup, any arguments after the script file are stored in a variable, with no further processing by Factor itself:"
|
||||
{ $code "factor [VM args...] [script] [args...]" }
|
||||
"Zero or more VM arguments can be passed in, followed by an optional script file name. If the script file is specified, it will be run on startup, any arguments after the script file are stored in the following variable, with no further processing by Factor itself:"
|
||||
{ $subsections command-line }
|
||||
"Instead of running a script, it is also possible to run a vocabulary; this invokes the vocabulary's " { $link POSTPONE: MAIN: } " word:"
|
||||
{ $code "factor [system switches...] -run=<vocab name>" }
|
||||
|
|
|
@ -105,4 +105,11 @@ os windows? os macosx? or [
|
|||
|
||||
os macosx? [
|
||||
[ ] [ "tools.deploy.test.14" shake-and-bake run-temp-image ] unit-test
|
||||
] when
|
||||
] when
|
||||
|
||||
[ { "a" "b" "c" } ] [
|
||||
"tools.deploy.test.15" shake-and-bake deploy-test-command
|
||||
{ "a" "b" "c" } append
|
||||
ascii [ lines ] with-process-reader
|
||||
rest
|
||||
] unit-test
|
|
@ -7,9 +7,8 @@ words memory kernel.private continuations io vocabs.loader
|
|||
system strings sets vectors quotations byte-arrays sorting
|
||||
compiler.units definitions generic generic.standard
|
||||
generic.single tools.deploy.config combinators classes
|
||||
classes.builtin slots.private grouping ;
|
||||
classes.builtin slots.private grouping command-line ;
|
||||
QUALIFIED: bootstrap.stage2
|
||||
QUALIFIED: command-line
|
||||
QUALIFIED: compiler.errors
|
||||
QUALIFIED: continuations
|
||||
QUALIFIED: definitions
|
||||
|
@ -22,11 +21,14 @@ IN: tools.deploy.shaker
|
|||
|
||||
! This file is some hairy shit.
|
||||
|
||||
: add-command-line-hook ( -- )
|
||||
[ (command-line) command-line set-global ] "command-line"
|
||||
init-hooks get set-at ;
|
||||
|
||||
: strip-init-hooks ( -- )
|
||||
"Stripping startup hooks" show
|
||||
{
|
||||
"alien.strings"
|
||||
"command-line"
|
||||
"cpu.x86"
|
||||
"destructors"
|
||||
"environment"
|
||||
|
@ -328,7 +330,7 @@ IN: tools.deploy.shaker
|
|||
classes-intersect-cache
|
||||
implementors-map
|
||||
update-map
|
||||
command-line:main-vocab-hook
|
||||
main-vocab-hook
|
||||
compiled-crossref
|
||||
compiled-generic-crossref
|
||||
compiler-impl
|
||||
|
@ -503,6 +505,7 @@ SYMBOL: deploy-vocab
|
|||
strip-debugger
|
||||
compute-next-methods
|
||||
strip-init-hooks
|
||||
add-command-line-hook
|
||||
strip-c-io
|
||||
strip-default-methods
|
||||
strip-compiler-classes
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: command-line io namespaces sequences ;
|
||||
IN: tools.deploy.test.15
|
||||
|
||||
: main ( -- ) command-line get [ print ] each ;
|
||||
|
||||
MAIN: main
|
|
@ -19,7 +19,10 @@ IN: tools.deploy.test
|
|||
] bi*
|
||||
<= ;
|
||||
|
||||
: run-temp-image ( -- )
|
||||
: deploy-test-command ( -- args )
|
||||
os macosx?
|
||||
"resource:Factor.app/Contents/MacOS/factor" normalize-path vm ?
|
||||
"-i=" "test.image" temp-file append 2array try-output-process ;
|
||||
"-i=" "test.image" temp-file append 2array ;
|
||||
|
||||
: run-temp-image ( -- )
|
||||
deploy-test-command try-output-process ;
|
Loading…
Reference in New Issue