1 ! :folding=indent:collapseFolds=1:
5 ! Copyright (C) 2004 Slava Pestov.
7 ! Redistribution and use in source and binary forms, with or without
8 ! modification, are permitted provided that the following conditions are met:
10 ! 1. Redistributions of source code must retain the above copyright notice,
11 ! this list of conditions and the following disclaimer.
13 ! 2. Redistributions in binary form must reproduce the above copyright notice,
14 ! this list of conditions and the following disclaimer in the documentation
15 ! and/or other materials provided with the distribution.
17 ! THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
18 ! INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
19 ! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20 ! DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 ! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23 ! OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25 ! OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26 ! ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 : cli-param ( param -- )
43 #! Handle a command-line argument starting with '-' by
44 #! setting that variable to t, or if the argument is
45 #! prefixed with 'no-', setting the variable to f.
46 dup "no-" str-head? dup [
52 : cli-arg ( argument -- argument )
53 #! Handle a command-line argument. If the argument was
54 #! consumed, returns f. Otherwise returns the argument.
56 dup "-" str-head? dup [
63 : parse-switches ( args -- args )
66 : run-files ( args -- )
67 [ [ run-file ] when* ] each ;
69 : parse-command-line ( args -- )
70 #! Parse command line arguments.
71 "args" get parse-switches run-files ;
74 "java.lang.System" "in" jvar-static-get
77 : stdout ( -- stdout )
78 "java.lang.System" "out" jvar-static-get <owriter> ;
81 #! Initialize standard input/output.
82 stdin stdout <char-stream> "stdio" set ;
84 : init-environment ( -- )
85 #! Initialize OS-specific constants.
86 "user.home" system-property "~" set
87 "file.separator" system-property "/" set ;
89 : run-user-init ( -- )
90 #! Run user init file if it exists
91 "~" get "/" get ".factor-rc" cat3 "init-path" set
94 "init-path" get dup exists? [
102 #! The boot word is run by the intepreter when starting from
103 #! an object database.
105 ! Some flags are *on* by default, unless user specifies
106 ! -no-<flag> CLI switch