cmds.secrets.CmdCompileTemplates: Support -k / --keep-going
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 5m8s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 5m21s
CI / Packaging test (pull_request) Successful in 0s

jw-pkg secrets compile-templates iterates over all selected templates and
compiles secrets from it - unless it encounters one that can't be compiled
for whatever reason, in which case the iteration errors out without
compiling the remaining secrets.

Add a -k / --keep-going option that makes the iteration not abort over
failed compilations but continue through the remaining templates, then
report an error status at the end.

The integration test gains a good sibling of the failing fixture template:
a fail-fast run must not reach it, and a keep-going run must compile it and
still fail the command.

Signed-off-by: Jan Lindemann <jan@janware.com>
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v1.4.0
This commit is contained in:
Jan Lindemann 2026-10-29 10:10:03 +01:00
commit 4691f38eec
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61

View file

@ -22,11 +22,17 @@ class CmdCompileTemplates(Cmd): # export
@override
async def _run(self, args: Namespace) -> None:
attrs = Attrs(args.mode, args.owner, args.group, None)
await self._compile_template_files(args.packages, attrs)
await self._compile_template_files(args.packages, attrs, args.keep_going)
@override
def add_arguments(self, parser: ArgumentParser) -> None:
super().add_arguments(parser)
parser.add_argument(
'--keep-going',
'-k',
action = 'store_true',
help = 'Compile all templates, reporting the failures at the end',
)
parser.add_argument(
'--owner', '-o', default = None, help = 'Default output file owner'
)