--- /dev/null
+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
[ source-file main>> [ execute( -- ) ] when* ] bi
] with-variable ;
-: (parse-command-line) ( run? args -- )
- [ command-line off script off drop ] [
- unclip "-" ?head
- [ param (parse-command-line) ]
- [
- rot [ prefix f ] when
+: (parse-command-line) ( args -- )
+ [
+ unclip "-" ?head [
+ [ param ] [ "run=" head? ] bi
+ [ command-line set ]
+ [ (parse-command-line) ] if
+ ] [
script set command-line set
] if
- ] if-empty ;
+ ] unless-empty ;
: parse-command-line ( args -- )
- [ [ "-run=" head? ] any? ] keep (parse-command-line) ;
+ command-line off
+ script off
+ (parse-command-line) ;
SYMBOL: main-vocab-hook