dundalek / closh

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

Loading files and libraries #15

Open dundalek opened 6 years ago

dundalek commented 6 years ago
dundalek commented 5 years ago

I revisited this, here is how we currently stand:

JVM version

Lumo version

For example with lumo it is possible to load cljs libraries. First we fetch it:

clojure -Sdeps "{:deps {markdown-clj {:mvn/version \"1.0.5\"}}}" -e ":ok"

Then in lumo one can do:

(require 'lumo.classpath)
(lumo.classpath/add! "/home/me/.m2/repository/markdown-clj/markdown-clj/1.0.5/markdown-clj-1.0.5.jar")
(require '[markdown.core :as markdown])
(markdown/mdToHtml "# Hello\n *Markdown*")
; => "<h1>Hello</h1><p> <em>Markdown</em></p>"

In closh first there is issue with (require 'lumo.classpath) (https://github.com/dundalek/closh/issues/107). But with a workaround we can try:

(eval '(require 'lumo.classpath))
(lumo.classpath/add! "/home/me/.m2/repository/markdown-clj/markdown-clj/1.0.5/markdown-clj-1.0.5.jar")
(eval '(require '[markdown.core :as markdown]))

Which blows up with:

Could not require markdown.core
     (new)
     Function.cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3 (NO_SOURCE_FILE <embedded>:2043:72)
     Function.cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3 (NO_SOURCE_FILE <embedded>:2686:92)
     Function.cljs.js.require.cljs$core$IFn$_invoke$arity$5 (NO_SOURCE_FILE <embedded>:5648:145)
     Function.cljs.js.load_deps.cljs$core$IFn$_invoke$arity$7 (NO_SOURCE_FILE <embedded>:5659:119)
     Function.cljs.js.ns_side_effects.cljs$core$IFn$_invoke$arity$6 (NO_SOURCE_FILE <embedded>:5717:287)
     Object.cljs.js.eval_STAR_ (NO_SOURCE_FILE <embedded>:5764:41)
     Function.cljs.js.eval.cljs$core$IFn$_invoke$arity$4 (NO_SOURCE_FILE <embedded>:5773:77)
     Function.cljs.js.eval_impl.cljs$core$IFn$_invoke$arity$2 (NO_SOURCE_FILE <embedded>:5837:165)
     Function.cljs.js.eval_impl.cljs$core$IFn$_invoke$arity$1 (NO_SOURCE_FILE <embedded>:5836:421)

ERROR in file markdown/common.cljc
     (new)
     Function.cljs.core.ex_info.cljs$core$IFn$_invoke$arity$3 (NO_SOURCE_FILE <embedded>:2043:72)
     Function.cljs.analyzer.error.cljs$core$IFn$_invoke$arity$3 (NO_SOURCE_FILE <embedded>:2686:92)
     (NO_SOURCE_FILE <embedded>:5824:368)
     z (NO_SOURCE_FILE <embedded>:5825:306)
     (NO_SOURCE_FILE <embedded>:5820:508)
     Function.cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1 (NO_SOURCE_FILE <embedded>:1916:142)
     Function.cljs.core.trampoline.cljs$core$IFn$_invoke$arity$variadic (NO_SOURCE_FILE <embedded>:1916:280)
     Object.cljs.js.eval_str_STAR_ (NO_SOURCE_FILE <embedded>:5803:405)
     (NO_SOURCE_FILE <embedded>:5641:492)

missing ) after argument list
     (new)
     createScript (vm.cljs:136:10)
     Object.runInThisContext (vm.cljs:197:10)
     (Object.yt)
     (Object.lumo.repl.caching_node_eval)
     (NO_SOURCE_FILE <embedded>:5824:287)
     z (NO_SOURCE_FILE <embedded>:5825:306)
     (NO_SOURCE_FILE <embedded>:5820:508)
     Function.cljs.core.trampoline.cljs$core$IFn$_invoke$arity$1 (NO_SOURCE_FILE <embedded>:1916:142)
     Function.cljs.core.trampoline.cljs$core$IFn$_invoke$arity$variadic (NO_SOURCE_FILE <embedded>:1916:280)

The error is similar to https://github.com/dundalek/closh/issues/107 so after that one is fixed it may start to work.