wip
This commit is contained in:
parent
f65eae1f18
commit
0eee62b809
1 changed files with 18 additions and 14 deletions
|
|
@ -20,19 +20,7 @@
|
||||||
(fn
|
(fn
|
||||||
([ctx pod-spec] (load-pod ctx pod-spec nil))
|
([ctx pod-spec] (load-pod ctx pod-spec nil))
|
||||||
([ctx pod-spec _opts]
|
([ctx pod-spec _opts]
|
||||||
(let [ns-load-fns (atom {})
|
(let [env (:env ctx)
|
||||||
load-fn (fn load-fn [{:keys [:namespace]}]
|
|
||||||
(when-let [f (get @ns-load-fns namespace)]
|
|
||||||
(f)
|
|
||||||
;; return empty source, for sci to evaluate
|
|
||||||
""))
|
|
||||||
env (:env ctx)
|
|
||||||
prev-load-fn (:load-fn @env)
|
|
||||||
new-load-fn (fn [m]
|
|
||||||
(or (load-fn m)
|
|
||||||
(when prev-load-fn
|
|
||||||
(prev-load-fn m))))
|
|
||||||
_ (swap! env assoc :load-fn new-load-fn)
|
|
||||||
pod (binding [*out* @sci/out
|
pod (binding [*out* @sci/out
|
||||||
*err* @sci/err]
|
*err* @sci/err]
|
||||||
(impl/load-pod
|
(impl/load-pod
|
||||||
|
|
@ -51,7 +39,23 @@
|
||||||
(swap! env assoc-in [:namespaces sym-ns sym-name]
|
(swap! env assoc-in [:namespaces sym-ns sym-name]
|
||||||
v)
|
v)
|
||||||
v))))}))
|
v))))}))
|
||||||
namespaces (:namespaces pod)]
|
namespaces (:namespaces pod)
|
||||||
|
namespaces-to-load (when (contains? (:ops pod) :load)
|
||||||
|
(set (filter (fn [[_ns-name vars]]
|
||||||
|
(nil? vars))
|
||||||
|
namespaces)))]
|
||||||
|
(when (seq namespaces-to-load)
|
||||||
|
(let [load-fn (fn load-fn [{:keys [:namespace]}]
|
||||||
|
(when (contains? namespaces-to-load namespace)
|
||||||
|
#_(impl/load pod namespace (fn [namespace]
|
||||||
|
(process-namespace ctx namespace)))
|
||||||
|
""))
|
||||||
|
prev-load-fn (:load-fn @env)
|
||||||
|
new-load-fn (fn [m]
|
||||||
|
(or (load-fn m)
|
||||||
|
(when prev-load-fn
|
||||||
|
(prev-load-fn m))))]
|
||||||
|
(swap! env assoc :load-fn new-load-fn)))
|
||||||
(doseq [[ns-name vars] namespaces]
|
(doseq [[ns-name vars] namespaces]
|
||||||
(process-namespace ctx {:name ns-name :vars vars}))
|
(process-namespace ctx {:name ns-name :vars vars}))
|
||||||
(sci/future (impl/processor pod))
|
(sci/future (impl/processor pod))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue