wagoe doctor — the one answer to "something is wrong".
Six commands could tell you something was wrong (bb doctor, bb doctor:env, bb doctor --all, bb check, bb smoke-check, bb guide next) and nothing said which to reach for first. This runs the diagnostic
ones in the order their answers depend on each other and ends with one next
action (BOU-324).
It orchestrates rather than diagnoses. Every check still lives in
wagoe-tools behind its bb task — those remain the machinery, and CI calls
them directly with --ci. This reads their --edn output, which is why that
mode exists: picking one action out of formatted terminal text would mean
parsing colour codes and column padding.
Ordering is not cosmetic. A missing Java makes every later answer noise, and an unparseable config makes the command smoke checks fail for a reason that has nothing to do with the commands. So a stage with errors stops the run and says so, rather than burying its own finding under three more screens.
`wagoe doctor` — the one answer to "something is wrong". Six commands could tell you something was wrong (`bb doctor`, `bb doctor:env`, `bb doctor --all`, `bb check`, `bb smoke-check`, `bb guide next`) and nothing said which to reach for first. This runs the diagnostic ones in the order their answers depend on each other and ends with one next action (BOU-324). It orchestrates rather than diagnoses. Every check still lives in wagoe-tools behind its `bb` task — those remain the machinery, and CI calls them directly with `--ci`. This reads their `--edn` output, which is why that mode exists: picking one action out of formatted terminal text would mean parsing colour codes and column padding. Ordering is not cosmetic. A missing Java makes every later answer noise, and an unparseable config makes the command smoke checks fail for a reason that has nothing to do with the commands. So a stage with errors stops the run and says so, rather than burying its own finding under three more screens.
(collapse-unreadable results)One message instead of one per stage when the project's tools are too old.
Every stage predating --edn reports the same thing for the same reason, and
three copies of the same paragraph is the noise this command exists to
remove. The individual results stay in the tally; what collapses is what the
reader is asked to do about them.
One message instead of one per stage when the project's tools are too old. Every stage predating `--edn` reports the same thing for the same reason, and three copies of the same paragraph is the noise this command exists to remove. The individual results stay in the tally; what collapses is what the reader is asked to do about them.
(next-action results)The one thing to do, given every result gathered.
Errors before warnings, and the earliest stage first: the stages run from the most fundamental outwards, so an earlier finding is usually what the later ones are downstream of. Fixing the first and running again beats a list of nine.
The one thing to do, given every result gathered. Errors before warnings, and the earliest stage first: the stages run from the most fundamental outwards, so an earlier finding is usually what the later ones are downstream of. Fixing the first and running again beats a list of nine.
(parse-stage-output out)Every result a stage reported, from its stdout.
bb writes its own noise to stdout on some systems (Picked up JAVA_TOOL_OPTIONS, task banners), so this reads the lines that are ours
rather than assuming the whole of stdout is EDN.
All of them, not the last: bb doctor --env all --edn prints one map per
profile, and taking the last kept only the alphabetically final one. A
broken acc config reported two errors when asked directly, and wagoe doctor --env all answered "Everything checks out" — a diagnostic saying
fine over a broken config, which is the failure this command exists to
remove.
Returns nil, not [], when there was nothing of ours to read: the caller treats "could not tell" and "told me, and it was empty" differently.
Every result a stage reported, from its stdout. `bb` writes its own noise to stdout on some systems (`Picked up JAVA_TOOL_OPTIONS`, task banners), so this reads the lines that are ours rather than assuming the whole of stdout is EDN. All of them, not the last: `bb doctor --env all --edn` prints one map per profile, and taking the last kept only the alphabetically final one. A broken `acc` config reported two errors when asked directly, and `wagoe doctor --env all` answered "Everything checks out" — a diagnostic saying fine over a broken config, which is the failure this command exists to remove. Returns nil, not [], when there was nothing of ours to read: the caller treats "could not tell" and "told me, and it was empty" differently.
(run dir env)Run the stages against dir. Returns {:results :stopped-at :errors}.
Run the stages against `dir`. Returns {:results :stopped-at :errors}.
What runs, in order, and what a failure in each means for the rest.
:blocking? says whether an error here makes the later stages unreliable.
Environment prerequisites and configuration are both foundations: without a
JVM nothing runs, and without a parseable config every command that boots the
system fails for the same one reason.
What runs, in order, and what a failure in each means for the rest. `:blocking?` says whether an error here makes the later stages unreliable. Environment prerequisites and configuration are both foundations: without a JVM nothing runs, and without a parseable config every command that boots the system fails for the same one reason.
(wagoe-project? dir)True when dir is a project whose bb.edn pulls in wagoe-tools.
True when `dir` is a project whose bb.edn pulls in wagoe-tools.
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 |