1
0
mirror of https://github.com/janet-lang/janet synced 2025-12-11 19:18:07 +00:00

Deprecate process/args and add use macro.

Use is a shorthand for (import module :prefix "").
process/args has been replaced by (dyn :args) at
the top level.
This commit is contained in:
Calvin Rose
2019-07-20 16:57:07 -05:00
parent 0d3986abbb
commit a0e98b9aa8
5 changed files with 27 additions and 23 deletions

View File

@@ -1,5 +1,7 @@
# Copyright 2017-2019 (C) Calvin Rose
(def process/args "Deprecated. use '(dyn :args)' at script entry instead for process argument array."
(dyn :args))
(do
(var *should-repl* false)
@@ -13,11 +15,12 @@
(if-let [jp (os/getenv "JANET_PATH")] (setdyn :syspath jp))
(if-let [jp (os/getenv "JANET_HEADERPATH")] (setdyn :headerpath jp))
(def args (dyn :args))
# Flag handlers
(def handlers :private
{"h" (fn [&]
(print "usage: " (get process/args 0) " [options] script args...")
(print "usage: " (get args 0) " [options] script args...")
(print
`Options are:
-h : Show this help
@@ -42,20 +45,20 @@
"q" (fn [&] (set *quiet* true) 1)
"k" (fn [&] (set *compile-only* true) (set *exit-on-error* false) 1)
"n" (fn [&] (set *colorize* false) 1)
"m" (fn [i &] (setdyn :syspath (get process/args (+ i 1))) 2)
"m" (fn [i &] (setdyn :syspath (get args (+ i 1))) 2)
"c" (fn [i &]
(def e (dofile (get process/args (+ i 1))))
(spit (get process/args (+ i 2)) (make-image e))
(def e (dofile (get args (+ i 1))))
(spit (get args (+ i 2)) (make-image e))
(set *no-file* false)
3)
"-" (fn [&] (set *handleopts* false) 1)
"l" (fn [i &]
(import* (get process/args (+ i 1))
(import* (get args (+ i 1))
:prefix "" :exit *exit-on-error*)
2)
"e" (fn [i &]
(set *no-file* false)
(eval-string (get process/args (+ i 1)))
(eval-string (get args (+ i 1)))
2)})
(defn- dohandler [n i &]
@@ -64,9 +67,9 @@
# Process arguments
(var i 1)
(def lenargs (length process/args))
(def lenargs (length args))
(while (< i lenargs)
(def arg (get process/args i))
(def arg (get args i))
(if (and *handleopts* (= "-" (string/slice arg 0 1)))
(+= i (dohandler (string/slice arg 1 2) i))
(do

View File

@@ -63,7 +63,7 @@ int main(int argc, char **argv) {
args = janet_array(argc);
for (i = 0; i < argc; i++)
janet_array_push(args, janet_cstringv(argv[i]));
janet_def(env, "process/args", janet_wrap_array(args), "Command line arguments.");
janet_table_put(env, janet_ckeywordv("args"), janet_wrap_array(args));
/* Run startup script */
status = janet_dobytes(env, janet_gen_init, janet_gen_init_size, "init.janet", NULL);