1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! `litany workflow <ws> <agent> --config <name> | --clear` — the §9.4
//! **workflow mark** (REMOTE §9.24, bl-b680; litany ARCH §6, upstream
//! bl-5c02), its own file beside the table for the reason the table's doc
//! gives: one verb, one argv, one origin.
//!
//! Piped, not detached, for [`retarget`](super::retarget)'s reason exactly:
//! every refusal litany makes — an unknown lineage, a head whose `version` or
//! `workflow.yaml` will not parse, an agent the workspace has not got — comes
//! back in litany's own words rather than as a click that did nothing, and
//! every one of them precedes the write, so a declined switch leaves no debris.
//! The verb's one product on stdout is nothing (litany §3.4); the confirmation
//! rides stderr, which the captured [`Outcome`] carries whole.
//!
//! **Bare would be a read**, and yog never spells it: `litany workflow <ws>
//! <agent>` with neither flag answers which workflow governs on stdout, and
//! that answer rides `reply/governing` as `workflow_mark`, derived by yog over
//! the same refs (`config_edit::branch::workflow_mark`) rather than scraped
//! from a sentence. So this verb always names its direction — `Some` is
//! `--config <name>`, `None` is `--clear` — and the one thing it cannot
//! spawn is the inspection that would silently have marked, which litany
//! itself retired in bl-5c02.
use io;
use Path;
use ;
use crateOrigin;
/// The litany subcommand (pinned to `src/bin/litany.rs`, §8.2).
const WORKFLOW: &str = "workflow";
/// Set the mark at `config`'s head, or clear it (`None`).