Planck's shell support is modelled after clojure.java.shell
. And, in particular, the command is separated from its arguments.
Here is an example sequence in a Clojure REPL illustrating this:
user=> (require 'clojure.java.shell)
nil
user=> (clojure.java.shell/sh "lein version")
IOException error=2, No such file or directory java.lang.UNIXProcess.forkAndExec (UNIXProcess.java:-2)
user=> (clojure.java.shell/sh "lein" "version")
{:exit 0, :out "Leiningen 2.5.3 on Java 1.8.0_45 Java HotSpot(TM) 64-Bit Server VM\n", :err ""}
The analog in Planck:
cljs.user=> (require 'planck.shell)
nil
cljs.user=> (planck.shell/sh "lein version")
{:exit -1, :out nil, :err "launch path not accessible"}
cljs.user=> (planck.shell/sh "lein" "version")
{:exit 0, :out "Leiningen 2.5.3 on Java 1.8.0_45 Java HotSpot(TM) 64-Bit Server VM\n", :err ""}
cljs.user=>