Documentation
¶
Overview ¶
Package dstow carries repo-root artifacts that must ride inside the binary. The go:embed directive cannot reach above a package's directory, so files vendored at the repo root (snippet.sh, owned by release-ci per D26) are embedded here and consumed by the internal packages.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Manual embed.FS
Manual is the tracked docs/ tree, embedded whole — the source the hidden `manual` command group mirrors (§2.1's carve-out): directories become groups, markdown files become leaves, and every node prints its own file. The tree is the single source of truth, so the `all:` prefix is required — without it go:embed silently drops files beginning with "." or "_", and a dropped file is a topic that exists in the repo and nowhere in the binary.
var RCSnippet string
RCSnippet is the vendored snippet.sh, verbatim — the canonical rc bootstrap (DESIGN §9.1 B1 as amended: authored in release-ci, vendored beside install.sh, embedded so `dstow snippet rc` emits the one canonical file with zero transcription drift (B2)).
Functions ¶
This section is empty.
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
dstow
command
Command dstow is a dotfiles manager built on the gostow engine.
|
Command dstow is a dotfiles manager built on the gostow engine. |
|
internal
|
|
|
cli
Package cli is dstow's command-line front end and composition root (A1/A2): the only consumer that turns the app core's data into a cobra CLI, renders results through the ui printer, and maps typed domain errors to exit codes.
|
Package cli is dstow's command-line front end and composition root (A1/A2): the only consumer that turns the app core's data into a cobra CLI, renders results through the ui printer, and maps typed domain errors to exit codes. |
|
config
Package config is dstow's four-level configuration chain (DESIGN.md §3 + A8): the legality matrix over the one key vocabulary, use-time path expansion, warnings-as-data for unknown and misplaced keys, stow compatibility (stowrc discovery, slotting, option mapping, and supplement diffing via gostow's public stowrc package), content-sniff routing for a renamed rc, DSTOW_PATH parsing, and the metadata-location accessor.
|
Package config is dstow's four-level configuration chain (DESIGN.md §3 + A8): the legality matrix over the one key vocabulary, use-time path expansion, warnings-as-data for unknown and misplaced keys, stow compatibility (stowrc discovery, slotting, option mapping, and supplement diffing via gostow's public stowrc package), content-sniff routing for a renamed rc, DSTOW_PATH parsing, and the metadata-location accessor. |
|
engine
Package engine is dstow's one seam onto gostow (DESIGN.md A14–A16): the deployment verbs as per-package operations, and the two introspections (Expected, Owner) the ledger and maintenance verbs compose with.
|
Package engine is dstow's one seam onto gostow (DESIGN.md A14–A16): the deployment verbs as per-package operations, and the two introspections (Expected, Owner) the ledger and maintenance verbs compose with. |
|
git
Package git is dstow's version-control seam: system git behind a port (DESIGN.md A17).
|
Package git is dstow's version-control seam: system git behind a port (DESIGN.md A17). |
|
hooks
Package hooks is dstow's hook engine (DESIGN.md §5 + A11): discovery of the eight per-event executables in one hooks directory, the DSTOW_HOOK_* environment contract each hook runs under, direct exec of a hook, and the per-invocation sequencer that fires the nested/LIFO lifecycle (REQUIREMENTS §9.1) once per scope.
|
Package hooks is dstow's hook engine (DESIGN.md §5 + A11): discovery of the eight per-event executables in one hooks directory, the DSTOW_HOOK_* environment contract each hook runs under, direct exec of a hook, and the per-invocation sequencer that fires the nested/LIFO lifecycle (REQUIREMENTS §9.1) once per scope. |
|
ignore
Package ignore is dstow's native ignore matcher (DESIGN.md A15 + §3.4): the additive ignore chain's gitignore-glob entries, compiled once and matched per package against package-root-relative paths.
|
Package ignore is dstow's native ignore matcher (DESIGN.md A15 + §3.4): the additive ignore chain's gitignore-glob entries, compiled once and matched per package against package-root-relative paths. |
|
ledger
Package ledger is dstow's current-state index of the symlinks it believes exist (DESIGN.md §6 + A10; ADR 0001).
|
Package ledger is dstow's current-state index of the symlinks it believes exist (DESIGN.md §6 + A10; ADR 0001). |
|
name
Package name is dstow's pure naming grammar: parse and format fully qualified names (FQNs), percent-encode and -decode coordinate segments, resolve segment-boundary suffix matches, force package-kind with a leading "::", and classify an operand as a path or a name expression.
|
Package name is dstow's pure naming grammar: parse and format fully qualified names (FQNs), percent-encode and -decode coordinate segments, resolve segment-boundary suffix matches, force package-kind with a leading "::", and classify an operand as a path or a name expression. |
|
ops
Package ops is dstow's application core (A13): the verbs as deep modules composing config, repo, engine, ledger, and hooks into structured results.
|
Package ops is dstow's application core (A13): the verbs as deep modules composing config, repo, engine, ledger, and hooks into structured results. |
|
repo
Package repo is dstow's repo set (DESIGN.md A9): the repo registry (read/write with the same temp-file+fsync+rename discipline as the ledger), the source grammar and its internal github/local schemes, the managed-clone directory layout (A19), package enumeration (M2/M3), and name resolution over the set through the pure name package.
|
Package repo is dstow's repo set (DESIGN.md A9): the repo registry (read/write with the same temp-file+fsync+rename discipline as the ledger), the source grammar and its internal github/local schemes, the managed-clone directory layout (A19), package enumeration (M2/M3), and name resolution over the set through the pure name package. |
|
ui
Package ui is dstow's sole owner of the terminal streams (A4): every other module returns data — diagnostics included — and ui alone renders it.
|
Package ui is dstow's sole owner of the terminal streams (A4): every other module returns data — diagnostics included — and ui alone renders it. |