chore(dotfiles): streamline workstation configuration workflows

This commit is contained in:
2026-08-25 00:00:55 +02:00
parent a81bbf5115
commit 4a20edba5c
12 changed files with 279 additions and 18 deletions
+26 -6
View File
@@ -61,9 +61,27 @@ does not explain a package. System and user units use the same naming:
## Commands
From the repository root, run common workflows through the
`./system-config/decman` wrapper, which uses fixed Decman arguments:
```bash
./system-config/decman verify
./system-config/decman dry-run
./system-config/decman apply
```
`dry-run` and `apply` first run `verify`. They invoke Decman with `--no-hooks`,
matching the deliberately review-first direct commands below. `apply` changes
system state; use it only after reviewing the dry run.
The wrapper locates its configuration relative to itself, so its commands run
from the `system-config` directory. Command output and errors stream directly
to the terminal. If a child command fails, the wrapper prints the failed command
and returns its exit status. A missing executable returns `127`, another
execution error (including a permission error) returns `126`, and an
interrupted workflow returns `130`.
```bash
cd ~/system-config
./scripts/verify.py
sudo decman --source source.py --dry-run --no-hooks
sudo decman --source source.py --no-hooks
```
@@ -75,8 +93,10 @@ orphan cleanup from removing dependencies during adoption.
After intentional package changes, regenerate and review concern lists:
```bash
./scripts/split_packages.py
./scripts/refresh_orphan_guards.py
./scripts/verify.py
git diff
./system-config/decman refresh-package-state
yadm diff -- system-config
```
`refresh-package-state` runs `split-packages`, `refresh-orphan-guards`, and
`verify` in that order. Those individual file-changing commands are also
available through the dispatcher when only one is needed.