dundalek / closh

Bash-like shell based on Clojure
Eclipse Public License 1.0
1.61k stars 65 forks source link

Tilde ~ is not being correctly read in script mode #155

Open dundalek opened 4 years ago

dundalek commented 4 years ago

For example have a script test.cljc

echo ~/Downloads

Running

closh-zero.jar test.cljc

fails with:

Exception in thread "main" Syntax error reading source at (/home/me/Downloads/test.cljc:1:47).
    at clojure.lang.Compiler.load(Compiler.java:7642)
    at closh.zero.frontend.main$compiler_load_file.invokeStatic(main.clj:88)
    at closh.zero.frontend.main$compiler_load_file.invoke(main.clj:83)
    at closh.zero.frontend.main$load_script.invokeStatic(main.clj:104)
    at closh.zero.frontend.main$load_script.invoke(main.clj:96)
    at closh.zero.utils.clojure_main$script_opt.invokeStatic(clojure_main.clj:514)
    at closh.zero.utils.clojure_main$script_opt.invoke(clojure_main.clj:507)
    at closh.zero.utils.clojure_main$main.invokeStatic(clojure_main.clj:598)
    at closh.zero.utils.clojure_main$main.doInvoke(clojure_main.clj:561)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invokeStatic(core.clj:665)
    at clojure.core$apply.invoke(core.clj:660)
    at closh.zero.frontend.rebel$_main$fn__2716.invoke(rebel.clj:130)
    at clojure.core$with_redefs_fn.invokeStatic(core.clj:7514)
    at clojure.core$with_redefs_fn.invoke(core.clj:7498)
    at closh.zero.frontend.rebel$_main.invokeStatic(rebel.clj:125)
    at closh.zero.frontend.rebel$_main.doInvoke(rebel.clj:124)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at closh.zero.frontend.rebel.main(Unknown Source)
Caused by: java.lang.RuntimeException: Invalid token: /Downloads
    at clojure.lang.Util.runtimeException(Util.java:221)
    at clojure.lang.LispReader.interpretToken(LispReader.java:412)
    at clojure.lang.LispReader.read(LispReader.java:305)
    at clojure.lang.LispReader.read(LispReader.java:220)
    at clojure.lang.LispReader.access$200(LispReader.java:41)
    at clojure.lang.LispReader$UnquoteReader.invoke(LispReader.java:1183)
    at clojure.lang.LispReader.read(LispReader.java:285)
    at clojure.lang.LispReader.readDelimitedList(LispReader.java:1398)
    at clojure.lang.LispReader$ListReader.invoke(LispReader.java:1243)
    at clojure.lang.LispReader.read(LispReader.java:285)
    at clojure.lang.LispReader.read(LispReader.java:216)
    at clojure.lang.Compiler.load(Compiler.java:7630)
    ... 18 more