jolt/project.janet
Yogthos 0df9493b49 Fold jolt-deps into the jolt binary
Dependency resolution now lives in the `jolt` CLI itself instead of a separate
jolt-deps executable. `jolt` resolves a deps.edn into JOLT_PATH/JOLT_APP_PATHS
in-process and dispatches the deps subcommands:

  jolt -M:alias [args]   run the alias :main-opts
  jolt -A:alias CMD      run CMD with the alias paths
  jolt run FILE          resolve, then run FILE
  jolt path | tasks | task NAME

A deps.edn in the working dir is auto-resolved for the runnable commands
(repl/-m/-e/nrepl-server/FILE), so e.g. `jolt -M:nrepl` (or plain
`jolt nrepl-server`) starts an nREPL with the project and its deps loaded.

The runtime core stays deps-agnostic — it only reads JOLT_PATH. The resolver
(deps.janet) is reached only from the CLI entry and loads jpm lazily, so a run
with no deps.edn never touches it and an app baked from its own jolt/api entry
never links it. resolve-deps-argv only resolves on an explicit deps command or
when a deps.edn is present; help/version never do.

jolt-deps stays as a thin deprecation shim that forwards to `jolt`, so existing
scripts keep working. Docs (README, CLAUDE.md, building-and-deps, tools-deps)
and the help text updated.
2026-06-15 22:17:35 -04:00

17 lines
500 B
Text

(declare-project
:name "jolt"
:description "Clojure interpreter on Janet")
(declare-source
:source @["src"])
(declare-executable
:name "jolt"
:entry "src/jolt/main.janet")
# Deprecated shim kept for back-compat: deps.edn resolution is built into `jolt`
# now (the CLI front-end resolves into JOLT_PATH in-process; the runtime core
# stays deps-agnostic). Forwards to `jolt`; prefer `jolt -M:…` / `jolt path`.
(declare-executable
:name "jolt-deps"
:entry "src/jolt/deps_cli.janet")