magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
1 min read

capture-filter

A deny rule: it refuses a filter over a run capture or log, which cuts the failure block apart, and names what to run instead.

What it catches

A filter over a run capture or log, which cuts the failure block apart.

Why

A failure prints five lines together: the target, the cause, an output ref, the command that reads that ref, and the command to reproduce it. A filter keeps the one line it matched and drops the rest, so grep 'cause:' keeps the symptom and discards the ref that reads the whole log two lines below it. A range print (sed -n '1,200p') is a filter too: it cuts by POSITION, and the block sits wherever the run left it. Read the file whole, or give the run an output contract up front with -o jsonl --tee <file> and query that. Reading the whole file is not a filter and stays allowed.

Seeing it

A verdict names its rule in brackets, which is how you got here:

deny [capture-filter]: ...

magus describe rule capture-filter prints the same entry at a terminal, and magus describe rules lists every rule this workspace enforces.

See also

  • All rules - what this workspace enforces, deny first
  • The guard - how a verdict is reached and wired
guardrulescapture-filterdeny
Last updated (d966bfce)
Glossary

Workspace

The magus root directory that owns a set of projects and shared config; the unit magus operates over. See workspace.

Target

A named operation (build, test, ...) you invoke with magus run <target>; it may compose a spell's tool-native operations and depend on other targets. See targets.

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). See operations.

Run

One target executing under one magus invocation, such as magus run test web or magus affected ci. A run keeps its captured output behind an output reference. Every magus run is a run whether or not any job asked for it; see Job for how the two relate.

Conventions

Placeholders

Angle brackets mark a value you replace with your own - never type the brackets:

magus run <target>
magus completion <shell>    # e.g. bash, zsh, fish

<target>, <path>, <shell>, <name> and the like are stand-ins, not literal text.