A separate jolt-deps executable (mirroring jpm beside janet) resolves a deps.edn into source roots and runs jolt with them on JOLT_PATH; the runtime stays deps-agnostic. - src/jolt/deps.janet: read deps.edn (Janet parses it directly), resolve :git/* and :local/root via jpm/pm's download-bundle (git fetch + cache, no build), recurse for transitive deps, return de-duped roots. jpm loaded lazily so it's never embedded. Roots cached on a deps.edn hash. - src/jolt/deps_cli.janet + project.janet: the jolt-deps tool — path/run/repl/-e. - main: apply JOLT_PATH at runtime (the CLI ctx is frozen into the image at build, so init's env read wouldn't see it). Verified end to end against a local dep and a real git dep (medley). git only, pure clj/cljc. Test: deps-resolve-test (local deps, no network).
16 lines
412 B
Text
16 lines
412 B
Text
(declare-project
|
|
:name "jolt"
|
|
:description "Clojure interpreter on Janet")
|
|
|
|
(declare-source
|
|
:source @["src"])
|
|
|
|
(declare-executable
|
|
:name "jolt"
|
|
:entry "src/jolt/main.janet")
|
|
|
|
# Separate tool (like jpm beside janet): resolves deps.edn into Jolt source
|
|
# roots. The jolt runtime stays deps-agnostic — it just reads JOLT_PATH.
|
|
(declare-executable
|
|
:name "jolt-deps"
|
|
:entry "src/jolt/deps_cli.janet")
|