jw-pkg/src/python/jw/pkg/cmds/secrets
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann 141dd0ac3c
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m23s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 5m46s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 5m30s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 5m35s
CI / Packaging test (push) Successful in 0s
cmds.secrets.CompileTemplates: Fix conf line handling
File attributes of the compiled output of "jw-pkg secrets
compile-templates" can be specified via the # conf line atop a .jw-tmpl
file, the parsing of that line is buggy, however.

Its mode is parsed as a decimal number unless it carries a leading zero, so
"mode=640" yields 640 decimal, 1200 octal, and the output file ends up
without usable permissions.  The same decimal parse applies to a conf line atop
the .jw-secret of a target, whose attributes are honored the same way, and
the --mode option of compile-templates passes its string value through to
Attrs, whose mode is typed int, so a target without a conf line of its own
crashes in _format_metadata().

Other than that, the # conf line itself should be removed from the compiled
output, but isn't.

This commit makes the conf line handling correct:

- _parse_attributes() parses the mode as octal, with or without a leading
  zero
- _compile_one_template_file() drops the conf line from the compiled
  content
- the --mode option is converted to an octal int by octal_mode() at the
  argument boundary

The integration test writes its conf line modes without leading zeros,
expects the conf line gone from the compiled output, takes one target's
mode from a conf line atop its .jw-secret, and passes a --mode that the
conf lines override.

Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v1.1.0
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-10-12 10:58:14 +02:00
..
lib cmds.secrets.CompileTemplates: Fix conf line handling 2026-10-12 10:58:14 +02:00
Cmd.py py-check.mk: Run isort with "make format" 2026-08-11 16:45:14 +02:00
CmdCompileTemplates.py cmds.secrets.CompileTemplates: Fix conf line handling 2026-10-12 10:58:14 +02:00
CmdInstall.py App, lib, cmds: Fix mypy.explicit-override fallout 2026-08-07 18:02:26 +02:00
CmdListCompilationOutput.py App, lib, cmds: Fix mypy.explicit-override fallout 2026-08-07 18:02:26 +02:00
CmdListSecrets.py App, lib, cmds: Fix mypy.explicit-override fallout 2026-08-07 18:02:26 +02:00
CmdListTemplates.py App, lib, cmds: Fix mypy.explicit-override fallout 2026-08-07 18:02:26 +02:00
CmdRmCompilationOutput.py App, lib, cmds: Fix mypy.explicit-override fallout 2026-08-07 18:02:26 +02:00
Makefile cmds.CmdSecrets: Add command class + subcommands 2026-03-07 21:51:17 +01:00