command-line: make script and -run= param behave similarly.

db4
John Benediktsson 2014-09-25 12:02:23 -07:00
parent c07c1ba9b1
commit b12ca5e412
2 changed files with 43 additions and 8 deletions

View File

@ -0,0 +1,32 @@
USING: namespaces splitting tools.test ;
IN: command-line
{ f { "a" "b" "c" } } [
{ "-run=test-voc" "a" "b" "c" } parse-command-line
script get command-line get
] unit-test
{ f { "-a" "b" "c" } } [
{ "-run=test-voc" "-a" "b" "c" } parse-command-line
script get command-line get
] unit-test
{ f { "a" "-b" "c" } } [
{ "-run=test-voc" "a" "-b" "c" } parse-command-line
script get command-line get
] unit-test
{ f { "a" "b" "-c" } } [
{ "-run=test-voc" "a" "b" "-c" } parse-command-line
script get command-line get
] unit-test
{ "a" { "b" "c" } } [
{ "a" "b" "c" } parse-command-line
script get command-line get
] unit-test
{ "a" { "b" "c" } } [
{ "-foo" "a" "b" "c" } parse-command-line
script get command-line get
] unit-test

View File

@ -62,18 +62,21 @@ SYMBOL: command-line
[ source-file main>> [ execute( -- ) ] when* ] bi [ source-file main>> [ execute( -- ) ] when* ] bi
] with-variable ; ] with-variable ;
: (parse-command-line) ( run? args -- ) : (parse-command-line) ( args -- )
[ command-line off script off drop ] [ [
unclip "-" ?head unclip "-" ?head [
[ param (parse-command-line) ] [ param ] [ "run=" head? ] bi
[ [ command-line set ]
rot [ prefix f ] when [ (parse-command-line) ] if
] [
script set command-line set script set command-line set
] if ] if
] if-empty ; ] unless-empty ;
: parse-command-line ( args -- ) : parse-command-line ( args -- )
[ [ "-run=" head? ] any? ] keep (parse-command-line) ; command-line off
script off
(parse-command-line) ;
SYMBOL: main-vocab-hook SYMBOL: main-vocab-hook