[#957] Repair ns meta
This commit is contained in:
parent
89695d8f7a
commit
3f72507f77
12 changed files with 98 additions and 66 deletions
|
|
@ -1,7 +1,10 @@
|
||||||
(ns babashka.impl.csv
|
(ns babashka.impl.csv
|
||||||
{:no-doc true}
|
{:no-doc true}
|
||||||
(:require [clojure.data.csv :as csv]))
|
(:require [clojure.data.csv :as csv]
|
||||||
|
[sci.core :as sci]))
|
||||||
|
|
||||||
|
(def cns (sci/create-ns 'clojure.data.csv nil))
|
||||||
|
|
||||||
(def csv-namespace
|
(def csv-namespace
|
||||||
{'read-csv csv/read-csv
|
{'read-csv (sci/copy-var csv/read-csv cns)
|
||||||
'write-csv csv/write-csv})
|
'write-csv (sci/copy-var csv/write-csv cns)})
|
||||||
|
|
|
||||||
2
sci
2
sci
|
|
@ -1 +1 @@
|
||||||
Subproject commit 5ed2190f3c97de6d30f3aba96362bf6c68e95e90
|
Subproject commit 3c7ebc9adc31261e342145696438022e8a9b9fce
|
||||||
|
|
@ -4,7 +4,9 @@
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[sci.core :as sci]))
|
[sci.core :as sci]))
|
||||||
|
|
||||||
(def open-url-script (sci/new-dynamic-var '*open-url-script* (atom nil)))
|
(def bns (sci/create-ns 'clojure.java.browse nil))
|
||||||
|
|
||||||
|
(def open-url-script (sci/new-dynamic-var '*open-url-script* (atom nil) {:ns bns}))
|
||||||
|
|
||||||
(def os
|
(def os
|
||||||
(let [os-name (System/getProperty "os.name")
|
(let [os-name (System/getProperty "os.name")
|
||||||
|
|
@ -27,4 +29,4 @@
|
||||||
|
|
||||||
(def browse-namespace
|
(def browse-namespace
|
||||||
{'*open-url-script* open-url-script
|
{'*open-url-script* open-url-script
|
||||||
'browse-url browse-url})
|
'browse-url (sci/copy-var browse-url bns)})
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,13 @@
|
||||||
(ns babashka.impl.clojure.java.shell
|
(ns babashka.impl.clojure.java.shell
|
||||||
{:no-doc true}
|
{:no-doc true}
|
||||||
(:require [clojure.java.shell :as shell]
|
(:require [clojure.java.shell :as shell]
|
||||||
[sci.core :as sci]
|
[sci.core :as sci]))
|
||||||
[sci.impl.namespaces :refer [copy-var]]
|
|
||||||
[sci.impl.vars :as vars]))
|
|
||||||
|
|
||||||
(def shell-ns (vars/->SciNamespace 'clojure.java.shell nil))
|
(def shell-ns (sci/create-ns 'clojure.java.shell nil))
|
||||||
|
|
||||||
(def sh-dir (sci/new-dynamic-var '*sh-dir* nil {:ns shell-ns}))
|
(def sh-dir (sci/new-dynamic-var '*sh-dir* nil {:ns shell-ns}))
|
||||||
(def sh-env (sci/new-dynamic-var '*sh-env* nil {:ns shell-ns}))
|
(def sh-env (sci/new-dynamic-var '*sh-env* nil {:ns shell-ns}))
|
||||||
|
|
||||||
(defn with-sh-dir*
|
|
||||||
[_ _ dir & forms]
|
|
||||||
`(binding [clojure.java.shell/*sh-dir* ~dir]
|
|
||||||
~@forms))
|
|
||||||
|
|
||||||
(defn with-sh-env*
|
(defn with-sh-env*
|
||||||
[_ _ env & forms]
|
[_ _ env & forms]
|
||||||
`(binding [clojure.java.shell/*sh-env* ~env]
|
`(binding [clojure.java.shell/*sh-env* ~env]
|
||||||
|
|
@ -38,11 +31,11 @@
|
||||||
|
|
||||||
(alter-meta! #'sh (constantly (meta #'shell/sh)))
|
(alter-meta! #'sh (constantly (meta #'shell/sh)))
|
||||||
|
|
||||||
|
(def sns (sci/create-ns 'clojure.java.shell nil))
|
||||||
|
|
||||||
(def shell-namespace
|
(def shell-namespace
|
||||||
{'*sh-dir* sh-dir
|
{'*sh-dir* sh-dir
|
||||||
'*sh-env* sh-env
|
'*sh-env* sh-env
|
||||||
'with-sh-dir (with-meta with-sh-dir*
|
'with-sh-dir (sci/copy-var shell/with-sh-dir shell-ns)
|
||||||
{:sci/macro true})
|
'with-sh-env (sci/copy-var shell/with-sh-env shell-ns)
|
||||||
'with-sh-env (with-meta with-sh-env*
|
'sh (sci/copy-var sh shell-ns)})
|
||||||
{:sci/macro true})
|
|
||||||
'sh (copy-var sh shell-ns)})
|
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,19 @@
|
||||||
(:require [clojure.stacktrace :as stacktrace]
|
(:require [clojure.stacktrace :as stacktrace]
|
||||||
[sci.core :as sci]))
|
[sci.core :as sci]))
|
||||||
|
|
||||||
|
(def sns (sci/create-ns 'clojure.stacktrace nil))
|
||||||
|
|
||||||
(defmacro wrap-out [f]
|
(defmacro wrap-out [f]
|
||||||
`(fn [& ~'args]
|
`(fn [& ~'args]
|
||||||
(binding [*out* @sci/out]
|
(binding [*out* @sci/out]
|
||||||
(apply ~f ~'args))))
|
(apply ~f ~'args))))
|
||||||
|
|
||||||
|
(defn new-var [var-sym f]
|
||||||
|
(sci/new-var var-sym f {:ns sns}))
|
||||||
|
|
||||||
(def stacktrace-namespace
|
(def stacktrace-namespace
|
||||||
{'root-cause stacktrace/root-cause
|
{'root-cause (sci/copy-var stacktrace/root-cause sns)
|
||||||
'print-trace-element (wrap-out stacktrace/print-trace-element)
|
'print-trace-element (new-var 'print-trace-element (wrap-out stacktrace/print-trace-element))
|
||||||
'print-throwable (wrap-out stacktrace/print-throwable)
|
'print-throwable (new-var 'print-throwable (wrap-out stacktrace/print-throwable))
|
||||||
'print-stack-trace (wrap-out stacktrace/print-stack-trace)
|
'print-stack-trace (new-var 'print-stack-trace (wrap-out stacktrace/print-stack-trace))
|
||||||
'print-cause-trace (wrap-out stacktrace/print-cause-trace)})
|
'print-cause-trace (new-var 'print-cause-trace (wrap-out stacktrace/print-cause-trace))})
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,8 @@
|
||||||
|
|
||||||
(def protocols-namespace
|
(def protocols-namespace
|
||||||
{'Datafiable (sci/new-var 'clojure.core.protocols/Datafiable {:methods #{'datafy}
|
{'Datafiable (sci/new-var 'clojure.core.protocols/Datafiable {:methods #{'datafy}
|
||||||
:ns protocols-ns})
|
:ns protocols-ns} {:ns protocols-ns})
|
||||||
'datafy (copy-var datafy protocols-ns)
|
'datafy (copy-var datafy protocols-ns)
|
||||||
'Navigable (sci/new-var 'clojure.core.protocols/Navigable {:methods #{'nav}
|
'Navigable (sci/new-var 'clojure.core.protocols/Navigable {:methods #{'nav}
|
||||||
:ns protocols-ns})
|
:ns protocols-ns} {:ns protocols-ns})
|
||||||
'nav (copy-var nav protocols-ns)})
|
'nav (copy-var nav protocols-ns)})
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,24 @@
|
||||||
(ns babashka.impl.server)
|
(ns babashka.impl.server
|
||||||
|
(:require [babashka.impl.clojure.core.server :as server]
|
||||||
|
[babashka.impl.common :as common]
|
||||||
|
[babashka.impl.socket-repl :as socket-repl]
|
||||||
|
[sci.core :as sci]))
|
||||||
|
|
||||||
|
(def sns (sci/create-ns 'clojure.core.server nil))
|
||||||
|
|
||||||
|
(def prepl (fn [& args]
|
||||||
|
(apply server/prepl @common/ctx args)))
|
||||||
|
|
||||||
|
(def io-prepl
|
||||||
|
(fn [& args]
|
||||||
|
(apply server/io-prepl @common/ctx args)))
|
||||||
|
|
||||||
|
(def start-server
|
||||||
|
(fn [& args]
|
||||||
|
(apply server/start-server @common/ctx args)))
|
||||||
|
|
||||||
|
(def clojure-core-server-namespace
|
||||||
|
{'repl (sci/copy-var socket-repl/repl sns)
|
||||||
|
'prepl (sci/copy-var prepl sns)
|
||||||
|
'io-prepl (sci/copy-var io-prepl sns)
|
||||||
|
'start-server (sci/copy-var start-server sns)})
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@
|
||||||
|
|
||||||
(def tns t/tns)
|
(def tns t/tns)
|
||||||
|
|
||||||
|
(defn new-var [var-sym f]
|
||||||
|
(sci/new-var var-sym f {:ns tns}))
|
||||||
|
|
||||||
(def clojure-test-namespace
|
(def clojure-test-namespace
|
||||||
{:obj tns
|
{:obj tns
|
||||||
'*load-tests* t/load-tests
|
'*load-tests* t/load-tests
|
||||||
|
|
@ -20,17 +23,17 @@
|
||||||
'*test-out* t/test-out
|
'*test-out* t/test-out
|
||||||
;; 'with-test-out (macrofy @#'t/with-test-out)
|
;; 'with-test-out (macrofy @#'t/with-test-out)
|
||||||
;; 'file-position t/file-position
|
;; 'file-position t/file-position
|
||||||
'testing-vars-str t/testing-vars-str
|
'testing-vars-str (sci/copy-var t/testing-vars-str tns)
|
||||||
'testing-contexts-str t/testing-contexts-str
|
'testing-contexts-str (sci/copy-var t/testing-contexts-str tns)
|
||||||
'inc-report-counter t/inc-report-counter
|
'inc-report-counter (sci/copy-var t/inc-report-counter tns)
|
||||||
'report t/report
|
'report t/report
|
||||||
'do-report t/do-report
|
'do-report (sci/copy-var t/do-report tns)
|
||||||
;; assertion utilities
|
;; assertion utilities
|
||||||
'function? t/function?
|
'function? (sci/copy-var t/function? tns)
|
||||||
'assert-predicate t/assert-predicate
|
'assert-predicate (sci/copy-var t/assert-predicate tns)
|
||||||
'assert-any t/assert-any
|
'assert-any (sci/copy-var t/assert-any tns)
|
||||||
;; assertion methods
|
;; assertion methods
|
||||||
'assert-expr t/assert-expr
|
'assert-expr (sci/copy-var t/assert-expr tns)
|
||||||
'try-expr (sci/copy-var t/try-expr tns)
|
'try-expr (sci/copy-var t/try-expr tns)
|
||||||
;; assertion macros
|
;; assertion macros
|
||||||
'is (sci/copy-var t/is tns)
|
'is (sci/copy-var t/is tns)
|
||||||
|
|
@ -42,15 +45,15 @@
|
||||||
'deftest- (sci/copy-var t/deftest- tns)
|
'deftest- (sci/copy-var t/deftest- tns)
|
||||||
'set-test (sci/copy-var t/set-test tns)
|
'set-test (sci/copy-var t/set-test tns)
|
||||||
;; fixtures
|
;; fixtures
|
||||||
'use-fixtures t/use-fixtures
|
'use-fixtures (sci/copy-var t/use-fixtures tns)
|
||||||
'compose-fixtures t/compose-fixtures
|
'compose-fixtures (sci/copy-var t/compose-fixtures tns)
|
||||||
'join-fixtures t/join-fixtures
|
'join-fixtures (sci/copy-var t/join-fixtures tns)
|
||||||
;; running tests: low level
|
;; running tests: low level
|
||||||
'test-var t/test-var
|
'test-var t/test-var
|
||||||
'test-vars t/test-vars
|
'test-vars (sci/copy-var t/test-vars tns)
|
||||||
'test-all-vars (contextualize t/test-all-vars)
|
'test-all-vars (new-var 'test-all-vars (contextualize t/test-all-vars))
|
||||||
'test-ns (contextualize t/test-ns)
|
'test-ns (new-var 'test-ns (contextualize t/test-ns))
|
||||||
;; running tests: high level
|
;; running tests: high level
|
||||||
'run-tests (contextualize t/run-tests)
|
'run-tests (new-var 'run-tests (contextualize t/run-tests))
|
||||||
'run-all-tests (contextualize t/run-all-tests)
|
'run-all-tests (new-var 'run-all-tests (contextualize t/run-all-tests))
|
||||||
'successful? t/successful?})
|
'successful? (sci/copy-var t/successful? tns)})
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
[babashka.impl.classes :as classes]
|
[babashka.impl.classes :as classes]
|
||||||
[babashka.impl.classpath :as cp :refer [classpath-namespace]]
|
[babashka.impl.classpath :as cp :refer [classpath-namespace]]
|
||||||
[babashka.impl.clojure.core :as core :refer [core-extras]]
|
[babashka.impl.clojure.core :as core :refer [core-extras]]
|
||||||
[babashka.impl.clojure.core.server :as server]
|
|
||||||
[babashka.impl.clojure.java.browse :refer [browse-namespace]]
|
[babashka.impl.clojure.java.browse :refer [browse-namespace]]
|
||||||
[babashka.impl.clojure.java.io :refer [io-namespace]]
|
[babashka.impl.clojure.java.io :refer [io-namespace]]
|
||||||
[babashka.impl.clojure.java.shell :refer [shell-namespace]]
|
[babashka.impl.clojure.java.shell :refer [shell-namespace]]
|
||||||
|
|
@ -34,12 +33,13 @@
|
||||||
[babashka.impl.proxy :refer [proxy-fn]]
|
[babashka.impl.proxy :refer [proxy-fn]]
|
||||||
[babashka.impl.reify :refer [reify-fn]]
|
[babashka.impl.reify :refer [reify-fn]]
|
||||||
[babashka.impl.repl :as repl]
|
[babashka.impl.repl :as repl]
|
||||||
|
[babashka.impl.server :refer [clojure-core-server-namespace]]
|
||||||
[babashka.impl.socket-repl :as socket-repl]
|
[babashka.impl.socket-repl :as socket-repl]
|
||||||
[babashka.impl.tasks :as tasks :refer [tasks-namespace]]
|
[babashka.impl.tasks :as tasks :refer [tasks-namespace]]
|
||||||
[babashka.impl.test :as t]
|
[babashka.impl.test :as t]
|
||||||
[babashka.impl.tools.cli :refer [tools-cli-namespace]]
|
[babashka.impl.tools.cli :refer [tools-cli-namespace]]
|
||||||
[babashka.nrepl.server :as nrepl-server]
|
[babashka.nrepl.server :as nrepl-server]
|
||||||
[babashka.wait :as wait]
|
[babashka.wait :refer [wait-namespace]]
|
||||||
[clojure.edn :as edn]
|
[clojure.edn :as edn]
|
||||||
[clojure.java.io :as io]
|
[clojure.java.io :as io]
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
|
|
@ -72,6 +72,8 @@
|
||||||
(def pipe-signal-received? (constantly false))
|
(def pipe-signal-received? (constantly false))
|
||||||
(def handle-sigint! (constantly nil))))
|
(def handle-sigint! (constantly nil))))
|
||||||
|
|
||||||
|
(def signal-ns {'pipe-signal-received? (sci/copy-var pipe-signal-received? (sci/create-ns 'babashka.signal nil))})
|
||||||
|
|
||||||
(sci/alter-var-root sci/in (constantly *in*))
|
(sci/alter-var-root sci/in (constantly *in*))
|
||||||
(sci/alter-var-root sci/out (constantly *out*))
|
(sci/alter-var-root sci/out (constantly *out*))
|
||||||
(sci/alter-var-root sci/err (constantly *err*))
|
(sci/alter-var-root sci/err (constantly *err*))
|
||||||
|
|
@ -311,15 +313,6 @@ Use bb run --help to show this help output.
|
||||||
|
|
||||||
;;(def ^:private server-ns-obj (sci/create-ns 'clojure.core.server nil))
|
;;(def ^:private server-ns-obj (sci/create-ns 'clojure.core.server nil))
|
||||||
|
|
||||||
(def clojure-core-server
|
|
||||||
{'repl socket-repl/repl
|
|
||||||
'prepl (fn [& args]
|
|
||||||
(apply server/prepl @common/ctx args))
|
|
||||||
'io-prepl (fn [& args]
|
|
||||||
(apply server/io-prepl @common/ctx args))
|
|
||||||
'start-server (fn [& args]
|
|
||||||
(apply server/start-server @common/ctx args))})
|
|
||||||
|
|
||||||
(def input-var (sci/new-dynamic-var '*input*))
|
(def input-var (sci/new-dynamic-var '*input*))
|
||||||
|
|
||||||
(def namespaces
|
(def namespaces
|
||||||
|
|
@ -330,9 +323,8 @@ Use bb run --help to show this help output.
|
||||||
nil)}
|
nil)}
|
||||||
'clojure.tools.cli tools-cli-namespace
|
'clojure.tools.cli tools-cli-namespace
|
||||||
'clojure.java.shell shell-namespace
|
'clojure.java.shell shell-namespace
|
||||||
'babashka.wait {'wait-for-port wait/wait-for-port
|
'babashka.wait wait-namespace
|
||||||
'wait-for-path wait/wait-for-path}
|
'babashka.signal signal-ns
|
||||||
'babashka.signal {'pipe-signal-received? pipe-signal-received?}
|
|
||||||
'clojure.java.io io-namespace
|
'clojure.java.io io-namespace
|
||||||
'cheshire.core cheshire-core-namespace
|
'cheshire.core cheshire-core-namespace
|
||||||
'clojure.data data/data-namespace
|
'clojure.data data/data-namespace
|
||||||
|
|
@ -354,7 +346,7 @@ Use bb run --help to show this help output.
|
||||||
'clojure.datafy datafy-namespace
|
'clojure.datafy datafy-namespace
|
||||||
'clojure.core.protocols protocols-namespace
|
'clojure.core.protocols protocols-namespace
|
||||||
'babashka.process process-namespace
|
'babashka.process process-namespace
|
||||||
'clojure.core.server clojure-core-server
|
'clojure.core.server clojure-core-server-namespace
|
||||||
'babashka.deps deps-namespace
|
'babashka.deps deps-namespace
|
||||||
'babashka.tasks tasks-namespace
|
'babashka.tasks tasks-namespace
|
||||||
'taoensso.timbre timbre-namespace
|
'taoensso.timbre timbre-namespace
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
(ns babashka.wait
|
(ns babashka.wait
|
||||||
(:require [clojure.java.io :as io])
|
(:require [clojure.java.io :as io]
|
||||||
|
[sci.core :as sci])
|
||||||
(:import [java.net Socket SocketException]))
|
(:import [java.net Socket SocketException]))
|
||||||
|
|
||||||
(set! *warn-on-reflection* true)
|
(set! *warn-on-reflection* true)
|
||||||
|
|
@ -56,7 +57,13 @@
|
||||||
default
|
default
|
||||||
:else
|
:else
|
||||||
(assoc opts :took
|
(assoc opts :took
|
||||||
(- (System/currentTimeMillis) t0))))))))
|
(- (System/currentTimeMillis) t0))))))))
|
||||||
|
|
||||||
|
(def wns (sci/create-ns 'babashka.wait nil))
|
||||||
|
|
||||||
|
(def wait-namespace
|
||||||
|
{'wait-for-port (sci/copy-var wait-for-port wns)
|
||||||
|
'wait-for-path (sci/copy-var wait-for-path wns)})
|
||||||
|
|
||||||
(comment
|
(comment
|
||||||
(wait-for-port "localhost" 80)
|
(wait-for-port "localhost" 80)
|
||||||
|
|
|
||||||
|
|
@ -113,3 +113,8 @@ true
|
||||||
(str/replace ":env-key" ":extra-env")))
|
(str/replace ":env-key" ":extra-env")))
|
||||||
(is (fs/exists? libs-dir))
|
(is (fs/exists? libs-dir))
|
||||||
(is (fs/exists? libs-dir2)))))
|
(is (fs/exists? libs-dir2)))))
|
||||||
|
|
||||||
|
(deftest print-deps-test
|
||||||
|
|
||||||
|
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
(ns babashka.impl.socket-repl-test
|
(ns babashka.impl.socket-repl-test
|
||||||
(:require
|
(:require
|
||||||
[babashka.impl.common :as common]
|
[babashka.impl.common :as common]
|
||||||
|
[babashka.impl.server :refer [clojure-core-server-namespace]]
|
||||||
[babashka.impl.socket-repl :refer [start-repl! stop-repl!]]
|
[babashka.impl.socket-repl :refer [start-repl! stop-repl!]]
|
||||||
[babashka.main :refer [clojure-core-server]]
|
|
||||||
[babashka.process :as p]
|
[babashka.process :as p]
|
||||||
[babashka.test-utils :as tu]
|
[babashka.test-utils :as tu]
|
||||||
[babashka.wait :as w]
|
[babashka.wait :as w]
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
(when exec?
|
(when exec?
|
||||||
(try
|
(try
|
||||||
(if tu/jvm?
|
(if tu/jvm?
|
||||||
(let [ctx (init {:namespaces {'clojure.core.server clojure-core-server}
|
(let [ctx (init {:namespaces {'clojure.core.server clojure-core-server-namespace}
|
||||||
:features #{:bb}})]
|
:features #{:bb}})]
|
||||||
(vreset! common/ctx ctx)
|
(vreset! common/ctx ctx)
|
||||||
(start-repl! "0.0.0.0:1666" ctx))
|
(start-repl! "0.0.0.0:1666" ctx))
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
(let [ctx (init {:bindings {'*command-line-args*
|
(let [ctx (init {:bindings {'*command-line-args*
|
||||||
["a" "b" "c"]}
|
["a" "b" "c"]}
|
||||||
:env (atom {})
|
:env (atom {})
|
||||||
:namespaces {'clojure.core.server clojure-core-server}
|
:namespaces {'clojure.core.server clojure-core-server-namespace}
|
||||||
:features #{:bb}})]
|
:features #{:bb}})]
|
||||||
(vreset! common/ctx ctx)
|
(vreset! common/ctx ctx)
|
||||||
(start-repl! "{:address \"localhost\" :accept clojure.core.server/repl :port 1666}"
|
(start-repl! "{:address \"localhost\" :accept clojure.core.server/repl :port 1666}"
|
||||||
|
|
@ -103,7 +103,7 @@
|
||||||
(let [ctx (init {:bindings {'*command-line-args*
|
(let [ctx (init {:bindings {'*command-line-args*
|
||||||
["a" "b" "c"]}
|
["a" "b" "c"]}
|
||||||
:env (atom {})
|
:env (atom {})
|
||||||
:namespaces {'clojure.core.server clojure-core-server}
|
:namespaces {'clojure.core.server clojure-core-server-namespace}
|
||||||
:features #{:bb}})]
|
:features #{:bb}})]
|
||||||
(vreset! common/ctx ctx)
|
(vreset! common/ctx ctx)
|
||||||
(start-repl! "{:address \"localhost\" :accept clojure.core.server/io-prepl :port 1666}"
|
(start-repl! "{:address \"localhost\" :accept clojure.core.server/io-prepl :port 1666}"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue