Commit graph

4,889 commits

Author SHA1 Message Date
e75e308fd0
Release 1.0.0-244@suse-tumbleweed/x86_64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m51s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m3s
CI / Packaging test (push) Successful in 0s
2026-06-25 23:26:19 +00:00
d8a1e634cf
Release 1.0.0-244@kali-rolling/amd64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 4m17s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m12s
CI / Packaging test (push) Successful in 0s
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-25 23:10:04 +00:00
0178486667
Start version: 1.0.0-244
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-25 23:09:03 +00:00
78f57c7547
jw.pkg.lib.Result: Add unit test
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m28s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m10s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m43s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m58s
CI / Packaging test (push) Successful in 0s

Add a unit test for the Result class covering:

- stdout/stderr property access with various status values - None output handling and exception behavior - Encoding and strip_output property setters - cmd and wd setters - summary, summarize, and __repr__ behavior - matches_error pattern matching

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 20:57:22 +02:00
f4d40efc05
test: Move unit tests below jw/pkg

Move the unit test hierarchy to below test/unit/python/jw/pkg. Nesting the subdirectories so deeply might be overly careful, but it may as well be not - maybe in the future installable test packages are going to be generated and need simple ways to install without stepping onto each other's toes. If not, it's easier to cut two directory components out than having to reorganize possibly incoherent paths grown over multiple packages.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 20:57:05 +02:00
c94916d7de
jw.pkg.lib.Uri: Add unit test
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m48s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m29s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m7s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m14s
CI / Packaging test (push) Successful in 0s

The Uri class provides URL parsing and manipulation utilities used throughout jw-pkg. Add a unit test covering URL parsing, credential handling, path manipulation, and safe string formatting.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 19:08:02 +02:00
45f8e8cc89
test + python-tools.sh: Fix toplevel "make all" fallout
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m14s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m20s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m45s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m52s
CI / Packaging test (push) Successful in 0s

After a pipeline change, CI now runs "make all" in a repo's root, which uncovers two problems:

1. The help integration test only succeeded as long CI didn't run "make all" before "make test". That way, the checked out repository lacked the generated __init__.py files needed for some modular subcommands to be fully loaded, and hence, the test should have failed. The entire machinery only worked because the subcommands in question are not not essential to building jw-pkg itself: "secrets" and "posix". So, this commit adapts the help integration test to the new reality.

2. Regarding python-tools.sh: Commit 55060486 satisfies yapf in some places of the source code, but in others not anylonger. So patch python-tools.sh's newline handling again.

While not thematically similar, both fixes get baked into one commit to satisfy the requirement that every single commit needs to pass "make clean all check test" individually.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 18:28:36 +02:00
5506048614
python-tools.sh: Fix missing newline after imports
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m42s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 5m11s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m12s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m15s
CI / Packaging test (push) Successful in 0s

Commit 4e347683 removed a tralining newline after imports. Yapf doesn't like that, so revert that change.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 16:44:35 +02:00
efc5bc1c60
test: Add subdirectory with integration test
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m38s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m39s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m21s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m32s
CI / Packaging test (push) Successful in 0s

Add a test/integration subdirectory as a location for integration tests. The first tests that are added are unproblematic in that they don't need superuser privileges to run:

- help: Recursively check if jw-pkg.py's help messages are unchanged

- packages ls: Check if the bash package exists and contains

/usr/bin/bash /usr/bin/bashbug

Let's see how that fares in CI.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:40:53 +02:00
03325ab7f5
test-jw-pkg.mk: Add file

Add include file to provide some definitions for a first integration test suite. It provides the shared make variables, most notably TEST_CMD_LINE as handy default for running jw-pkg.py.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:38:22 +02:00
2c7edc9d44
profile|std-targets.mk: Add empty test target

Recursive make fails in scripts/usr-bin when driven through jw-pkg. Add empty test targets to remedy that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:37:02 +02:00
50da3a6f31
rules.mk: Remove debug $(info) for EXE_SH

The debug line "$(info EXE_SH=>$(EXE_SH)<)" was left in during development. Remove it.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 14:36:55 +02:00
a4bc6f2a7f
cmds.CmdPkg: Rename pkg -> packages
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m35s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m57s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m11s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m39s
CI / Packaging test (push) Successful in 0s

Relabel the toplevel command CmdPkg from "pkg" to "packages", because it rolls off the tounge much more nicely. Keep "pkg" as an alias for compatibilty.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 09:50:19 +02:00
3b0f7727a7
lib.Cmd.AbstractCmd.aliases: Add property

Add a property aliases to AbstractCmd in prepeparation for commands to bear multiple names / abbreviations / aliases.

The App.add_cmds_to_parser() function uses parse_known_args() to determine which subcommand was invoked, then conditionally registers nested subcommands. The lookup dictionary (scs) contains only canonical names, not aliases, so add them too, otherwise using the alias instead of the canonical name causes the lookup to fail and nested subcommands to never be registered.

Fix: Register each alias in scs pointing to the same SubCommand object, and deduplicate with id(sc) when iterating in all=True mode to avoid infinite recursion on help output.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 09:50:19 +02:00
4e347683ef
python-tools.sh: Fix __all__ format violation
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m20s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m20s
CI / Packaging test (push) Successful in 0s

Make python-tools.sh generate empty __all__ as [] on one line instead of multi-line format, and remove trailing blank line.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 09:50:15 +02:00
9d78eac696
Release 1.0.0-243@suse-tumbleweed/x86_64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m16s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m49s
CI / Packaging test (push) Successful in 0s
2026-06-24 23:33:33 +00:00
f14b7be1f2
Release 1.0.0-243@kali-rolling/amd64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m55s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m17s
CI / Packaging test (push) Successful in 0s
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-24 23:10:31 +00:00
fb0a59c607
Start version: 1.0.0-243
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-24 23:09:33 +00:00
3aecb6c685
rules.mk: Add targets to check shell syntax
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m3s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m33s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m23s
CI / Packaging test (push) Successful in 0s

Add the target sh-syntax-check, which triggers bash syntax linting with shellcheck This commit stops short of making target all depend on it, because the fallout is impressive.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:52:35 +02:00
e59d37e907
defs.mk: Use EXE_SH for shell scripts only

To make EXE_SH useful for automated shell syntax checking, remove all non POSIX shell / bash scripts from that variable, and place the non-shell scripts into EXE_SCRIPTS.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:52:35 +02:00
80cafa4737
defs.mk: Add *.slice to LOCAL_SYSTEMD
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m3s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m7s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m1s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m9s
CI / Packaging test (push) Successful in 0s

Support automatic installation of *.slice files into the system's systemd directory.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:43:11 +02:00
04b5088ca4
defs.mk: Minor code beautification

Uppercase some comments, and remove some dead code.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:43:11 +02:00
2cafd60b71
platform.mk: Support PREREQ_RUN_ADD

Modifying JW_PKG_XXX_PATH in pre-local.mk is fragile.

Amending PREREQ_RUN in pre-local.mk works, but only with $(JW_PKG_NO_CACHE) == true, or if "undefine JW_PKG_XXX_PATH" is also added in pre-local.mk. Otherwise JW_PKG_XXX_PATH will not be recomputed, because it's already defined from the cache.

Introduce the new variable PREREQ_RUN_ADD to solve that. If it's defined, it automatically invalidates the JW_PKG_XXX_PATH variables and sets them up for recalculation in py-path.mk / ldlibpath.mk.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:43:11 +02:00
4660a34305
platform.mk: Move include .cache-project.mk up

Reverse inclusion order of .cache-project.mk and cache-projects.mk: Definitions in .cache-project.mk should win over cache-projects.mk, because it's the more specialized include file, and the way the definitions in both files are structured, the later doesn't overwrite the earlier.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:43:11 +02:00
d31768cbef
projects-dir.mk: Fix: clean-dirs does too much

The clean-dirs target does not only clean the repos present in PROJECTS, but all repos it finds to be dirty, and clean-all-dirs does the opposite. I suppose that was an oversight, swap their recipes.

Moreover, cleaning all directories goes about its business in an overly complicated and unecessarily time-consuming way, fix that, too.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:43:11 +02:00
fe5756d761
py-defs.mk: Move all path defs into py-path.mk

py-path.mk is the place to host PYTHONPATH and MYPYPATH definitions, so move them there from py-defs.mk for consistency. Also, remove some dead code.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:43:11 +02:00
8952d1d22d
cmds.projects.CmdBuild: Annotate types
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m3s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m17s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m6s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m19s
CI / Packaging test (push) Successful in 0s

CmdBuild lacks consistent type annotation, add that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:23:22 +02:00
4fdfcc12a4
cmds.pkg.CmdInstall + cmds.posix.CmdCopy: Fix help

The commands "packages install" and "packages copy" have nonsensical help texts, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:23:22 +02:00
1e0dee5908
lib: More result log beautification

This commit adds more tweaks to shell command output in order to make it nicer. The biggest patch is in Result.__summarize(), which makes it more versatile, and allows removal of some code in SSHClient.

App sees some independent, minor result format beautification.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-24 21:23:22 +02:00
869bef2c06
Release 1.0.0-242@suse-tumbleweed/x86_64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m6s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m33s
CI / Packaging test (push) Successful in 0s
2026-06-17 23:28:03 +00:00
6bd054522e
Release 1.0.0-242@kali-rolling/amd64
All checks were successful
CI / Packaging - Kali Linux (push) Successful in 3m4s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m5s
CI / Packaging test (push) Successful in 0s
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-17 23:09:32 +00:00
2bcc1a71f6
Start version: 1.0.0-242
Signed-off-by: janware DevOps <devops@janware.com>
2026-06-17 23:08:34 +00:00
156d073885
py-path|ldlibpath.mk: Space-separate JW_PKG_XXX_PATH
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m45s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m31s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m10s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m1s
CI / Packaging test (push) Successful in 0s

The following variables contain colons as path-separators:

- JW_PKG_PYTHON_PATH - JW_PKG_EXE_PATH - JW_PKG_LD_LIBRARY_PATH

This commit makes them use spaces instead, so they can be more easily amended by Makefiles using them. Also define them in a more uniform way, and use the newly introduced PREREQ_RUN variable to fill them, which in turn can also be appended to before that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:16:29 +02:00
0af41ac832
cmds.projects.Cmd[Ldlibpath|Exepath]: Support --delimiter

Support a --delimiter option to the ldlibpath and exepath commands. Notable use case are the JW_PKG_XXX_PATH variables, which should use spaces instead of colons.

TODO: Merging those two command modules with BaseCmdPkgRelations would have made introducing this redundancy unnecessary, check if that's a possibility.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:16:29 +02:00
37d5bcddd4
cmds.projects.BaseCmdPkgRelations: Support spaces as delimiter

Some options to the pkg-xxx commands, like flavour, --subsections and --ignore understand a comma as delimiter if multiple option values are specified. The comma character is not very friendly to use in $(call ...) macros, though, so support spaces and pipe characters as well.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:16:29 +02:00
10bde0c05d
topdir.mk: Move PREREQ definition into defs.mk

At present, the PREREQ-variable is effectively only used to detect if prerequiste packages haven't run "make all" before make is run in a given package. Also, it's only useful in $(TOPDIR). This commit splits the variable up into PREREQ_BUILD and PREREQ_RUN, and makes the variables available in every Makefile of a package by placing them in defs.mk instead of topdir.mk.

This also fixes a problem that PREREQ was cached before being filled, hence empty. Which effectively wasn't much of a problem, because it was basically unused, but still.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:16:29 +02:00
8712cbc7b5
cache.mk: Support JW_PKG_NO_CACHE

cache.mk generates .project-cache.mk, and this commit supports disabling the definitions in the generated cache by setting JW_PKG_NO_CACHE=true.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:16:29 +02:00
3833fb0988
cache-projects.mk: Remove unused ifndef / endif

make/Makefile is responsible to generate $(TOPDIR)/cache-projects.mk. The variables are taken from .cache-project.mk, with some variables intentionally omitted, but their ifndef / endif blocks remain in place. Not harmful but ugly. Make sed range-delete the left-over blocks entirely.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:16:12 +02:00
d689d0b8bd
py-path.mk: Add file
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m22s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m4s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m34s
CI / Packaging test (push) Successful in 0s

Aside from PYTHONPATH, ldlibpath.mk runs jw-pkg.py for determining other paths, too, which is often unneeded and can impact performance. Split the PYTHONPATH detection into a dedicated py-path.mk, and include it from ldlibpath.mk, so it can be used instead where needed.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:12:10 +02:00
d57876a620
dev-utils.mk: cat-makefiles: Fix typo
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m25s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m6s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m9s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m9s
CI / Packaging test (push) Successful in 0s

The cat-makefiles target generates a Makefile with a syntax error as first line, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 20:01:42 +02:00
dc4a5f2f2e
py-defs.mk: echo-py: Protect recipe from shell expansion
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m3s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m14s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m13s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m10s
CI / Packaging test (push) Successful in 0s

If make echo-py's output is accidentally subjected to shell expansion, it can yield surprising results. Protect it from that happening.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 19:49:53 +02:00
d42040cb7b
py-mod.mk: Support PY_INIT_SUBMODULES
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m3s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m12s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m2s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m21s
CI / Packaging test (push) Successful in 0s

Add support for PY_INIT_SUBMODULES to py-mod.mk. If it is defined in a Makefile including py-mod.mk, the listed submodules will be added to __init__.py and thus included in the list of things that can be imported from a module.

This commit also adds support for --submodules to python-tools.sh for that to happen.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 19:32:40 +02:00
8f1154892f
py-mod.mk: Extract symbols in __all__
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m1s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m6s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m6s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m1s
CI / Packaging test (push) Successful in 0s

Symbols in the __all__ list of a module marked with "# export" arent't currently added to __init__.py. Fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 19:24:49 +02:00
b7d211b21e
App.__find_dir() Support --topdir-format make:XXX
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 2m57s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m46s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m26s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m38s
CI / Packaging test (push) Successful in 0s

The global --topdir-format make:XXX option to jw-pkg is half-baked at best, and __find_dir() ignores it entirely. Make __find_dir() return some Makefile-syntax-formatted output if the option is present. Not used anywhere, currently, and, hence, badly tested, but still better than the situation before.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 18:51:49 +02:00
ffe0cfd41d
lib.App: Allow _run() without subcommands
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m5s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m11s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m8s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m17s
CI / Packaging test (push) Successful in 0s

Overriding the _run() method entirely in App subclasses is currently only possible if the application supports a subcommand structure. Make it possible to use it as an abstraction for a single-command application.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 18:38:58 +02:00
9b87ba6c98
cmds.secrets.lib.FilesContext: Fix: Inexistent secrets
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m23s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m19s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m31s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m22s
CI / Packaging test (push) Successful in 0s

"jw-pkg secrets compile-templates" errors out over checking the contents of inexistent secrets, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 18:10:04 +02:00
b04c8d200a
lib.Result.strip: Rename to .strip_output
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m4s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m18s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m1s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m16s
CI / Packaging test (push) Successful in 0s

The .strip property of class Result defaults to True, and its name isn't very clear. Rename it to .strip_output, and default it to False to avoid surprising contents for unsuspecting callers.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 17:26:19 +02:00
7088e33cfe
lib.App.run(): Use pretty_cmd() for logging command line
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 3m26s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 3m25s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 3m10s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 3m5s
CI / Packaging test (push) Successful in 0s

The command line jw-pkg.py is run with is logged with level "debug", and reconstructed with ' '.join(sys.argv). Use pretty_cmd() instead, this adds quotes around spaces.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 17:12:42 +02:00
048726a1aa
lib.Result: Fill "cmd" ctor parameter

Commands executed by ExecContext and its derived classes don't populate the "cmd" parameter of "Result"'s constructor. Fixing that makes for nicer error messages.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 17:12:42 +02:00
0386c351a9
log: Use jw-python's log implementation

Use the (mostly) call-compatible log implementation from jw-python. This buys us much nicer logs with color and source-code positon annotations.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-17 17:12:42 +02:00