Pure: a Program is a host process a section needs beside its containers (a
shadow-cljs watch, a JVM with an nREPL). What starts it and where its nREPL
listens are derived from the build files of its directory (facts), unless
the Program says so itself.
Facts are the parsed build files, keyed by file name:
{"shadow-cljs.edn" {..} "deps.edn" {..} "bb.edn" {..} "project.clj" true}
A Clojure kind always starts with its nREPL: shadow-cljs opens its own, a
deps.edn project runs its :nrepl alias or a plain nrepl.cmdline, lein and
babashka run their headless REPL servers.
Pure: a Program is a host process a section needs beside its containers (a
shadow-cljs watch, a JVM with an nREPL). What starts it and where its nREPL
listens are derived from the build files of its directory (`facts`), unless
the Program says so itself.
Facts are the parsed build files, keyed by file name:
{"shadow-cljs.edn" {..} "deps.edn" {..} "bb.edn" {..} "project.clj" true}
A Clojure kind always starts with its nREPL: shadow-cljs opens its own, a
deps.edn project runs its `:nrepl` alias or a plain nrepl.cmdline, lein and
babashka run their headless REPL servers.(command-line command)The shell words of command: an argv as is, a string through sh -c.
The shell words of `command`: an argv as is, a string through `sh -c`.
(detached-script command log)The sh -c script that replaces the shell with command as the leader of a
new session, its output appended to log. The spawned pid is therefore the
program's and its process group's.
The `sh -c` script that replaces the shell with `command` as the leader of a new session, its output appended to `log`. The spawned pid is therefore the program's and its process group's.
(detect facts)(detect facts k port){:program/kind :program/command :program/nrepl-port} a directory with facts
starts with, as kind k (default: what the facts say) and listening on
port when the kind lets the caller choose. A :plain directory has no
command.
{:program/kind :program/command :program/nrepl-port} a directory with `facts`
starts with, as kind `k` (default: what the facts say) and listening on
`port` when the kind lets the caller choose. A :plain directory has no
command.(kind facts)The kind of the directory facts describes, :plain when it has no Clojure
build file.
The kind of the directory `facts` describes, :plain when it has no Clojure build file.
Build file -> kind, in the order a directory holding several is read.
Build file -> kind, in the order a directory holding several is read.
(log-file log-dir project program)Where the output of program of compose project project goes under log-dir.
Where the output of `program` of compose project `project` goes under `log-dir`.
The -Sdeps a deps.edn project without an nREPL alias is started with.
The -Sdeps a deps.edn project without an nREPL alias is started with.
(port-value v)A port out of an EDN value: the int itself, or the int default of a tagged
reader form such as #shadow/env ["PORT" :default 7903].
A port out of an EDN value: the int itself, or the int default of a tagged reader form such as `#shadow/env ["PORT" :default 7903]`.
(release-programs active id keep){program-id Running} active entry id can stop: its programs that no other
active entry of its project holds and that are not in keep.
{program-id Running} active entry `id` can stop: its programs that no other
active entry of its project holds and that are not in `keep`.(resolved program facts)Result<Program> ready to start: program completed from facts. A command
or nREPL port the Program declares wins over the detected one.
Result<Program> ready to start: `program` completed from `facts`. A command or nREPL port the Program declares wins over the detected one.
(running-in active project except){program-id Running} of every program the active entries of project hold,
entry except left out.
{program-id Running} of every program the active entries of `project` hold,
entry `except` left out.(wanted programs services)Programs of programs a section running services starts: those paired
with one of the services through :program/with, and those paired with none.
Programs of `programs` a section running `services` starts: those paired with one of the services through :program/with, and those paired with none.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |