ff29d1f863
projects-dir.mk: push --force-with-lease
...
To make it easier to force-push feature branches, allow that, albeit under --force-with-lease protection.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-05 17:37:53 +02:00
38f13e922a
projects-dir.mk: git-show-ahead-of-master: Add target
...
Add a new target git-show-ahead-of-master, which does what git-show-pushable did up to now: List all repos where the currently checked-out branch is ahead of origin/master.
git-show-pushable now shows repos that have their checked-out branch ahead of their respective upstream branches. Which is truer to what the target's name suggests.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-05 17:22:14 +02:00
262be57741
cache.mk: Don't overwrite defined variables
...
Check with ifndef if a variable is defined before hard defining it in cache.mk. This gives more flexibility when overriding variables with local.mk.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-05 16:57:00 +02:00
38076c951b
cleandirs.mk: Fix: Descend into subdirectories
...
cleandirs.mk doesn't descend into subdirectories, because defs-dirs.mk is not included, and, hence FIND_SUBDIRS is undefined. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-05 16:55:44 +02:00
66be9c0aa5
Release 1.0.0-218@suse-tumbleweed/x86_64
Test repo on all supported platforms / CI (push) Successful in 4m20s
2026-05-02 05:49:24 +00:00
17a0e2b657
Release 1.0.0-218@kali-rolling/amd64
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-05-02 05:32:40 +00:00
2eb56df718
Start version: 1.0.0-218
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-05-02 05:31:42 +00:00
c9b48880a9
cmds.pkg.CmdSelect: Fix argument order in select()
...
Argument ordering in the call to distro.select() is mixed up, the filter is mistaken for names, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-02 07:19:41 +02:00
fc3ac69bd4
cmds.projects.CmdBuild: Don't change handled Exception
...
Exceptions raised by the build command are handled and changed, messing up the stack trace. Re-raise the original exception from the exception handler to fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-02 06:59:24 +02:00
69f1f3e071
Release 1.0.0-217@suse-tumbleweed/x86_64
...
Test repo on all supported platforms / CI (push) Successful in 4m7s
Signed-off-by: janware DevOps <devops@janware.com>
2026-05-01 23:29:49 +00:00
457b465297
Release 1.0.0-217@kali-rolling/amd64
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-05-01 23:10:10 +00:00
20898ec46e
Start version: 1.0.0-217
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-05-01 23:09:12 +00:00
30abb227c7
lib.Cmd.print_help(): Add method
...
Add Cmd.print_help(). By default, it prints a help message. If passed an integer exit_status, it also calls sys.exit(exit_status).
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-01 15:57:16 +02:00
7e2099877c
lib.Cmd.load_subcommands(): Add method
...
Push cmds.Cmd._add_subcommands() as lib.Cmd.load_subcommands() one step up to the top of the type hierarchy ladder.
By default, it does the same thing, i.e. load subcommands matching frobnicate.Cmd* if called on class CmdFrobnicate.
This commit also replaces invocations of Cmd._add_subcommands() by invocations of this new method.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-05-01 15:56:08 +02:00
8a9e17518b
Release 1.0.0-216@suse-tumbleweed/x86_64
...
Test repo on all supported platforms / CI (push) Successful in 4m13s
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-28 11:31:42 +00:00
55e34d6c8d
Release 1.0.0-216@kali-rolling/amd64
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-28 11:20:12 +00:00
3d6e6a20c6
Start version: 1.0.0-216
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-28 11:19:20 +00:00
7dfe733865
cmds.secrets.lib.DistroContext.install(): Full archive
...
Make "secrets install" digest archives with a more elaborate layout. It selects secrets from archives containing:
default/path/to/secret.jw-secret com/janware/grautvornix/path/to/secret.jw-secret
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:30 +02:00
530efa1427
cmds.secrets.lib.tar: Add module
...
Add a module cmds.secrets.lib.tar. Secrets handling demands treating tar archive members more individually, jw.pkg.lib.TarIo is not a good fit for that, so try with a different module. To be merged eventually.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:30 +02:00
5bb7fe96db
lib.util.get(): Add function
...
Add get(), which does pretty much what FileContext.get() does, but with auto-instantiating a FileContext instance. Input processing filters can be passed, too, all *args and **kwargs are passed unchanged to the FileContext's constructor.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
fe1eb0014a
lib.ProcFilter: Add run()
...
Add a run() function. It constructs a pipeline from various possible types, and runs its data parameter through it.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
1c11503dfb
lib.Distro._install(): Implement remote installation
...
lib.Distro._install()'s default implementation allows to install packages specified as direct links, but only to the local machine. Implement installation to arbitrary hosts specified with --target.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
60de1b0ca0
lib.Distro.pkg_ext: Fix call to os_cascade
...
The Distro.pkg_ext property calls .os_cascade, which is a property, with parenthesis. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
5837d10a1c
lib.util.copy(): Tolerate list[str] and FileContext args
...
Modify copy():
- Allow the source argument src_uri to be a list of URIs, in which
case copy should return a list of paths instead of one path
- Change the dst_uri parameter to dst, signalling that it now also
tolerates a FileContext
- Use the CopyContext class to manage the source and target
FileContext instances
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
d9746cd20b
lib + cmds.projects: Use lib.Uri
...
Remove the feeble attempts at unifying URI handling, and use class Uri from lib.Uri instead.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
f0eeb14a97
lib.base.Uri: Add module
...
Add a URI abstraction module. The class is designed to replace less unified attempts at URI parsing throughout the jw-pkg code base.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
6cfb86d2a7
lib.FileContext.is_dir(): Add follow_symlinks
...
Make FileContext.is_dir() usable: - Add follow_symlinks parameter meant to do the obvious - Fix missing await
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
b5762116a1
lib.FileContext.get(): Remove bogus owner, group, mode
...
owner, group or mode don't belong in .get()'s signature, remove them.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:29 +02:00
6ced64202e
lib.ExecContext._stat(): Don't decode stderr twice
...
The output of /usr/bin/stat is decoded once the Result object is decoded as a whole, and then again individually, which fails of course. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-28 13:00:28 +02:00
e2c01ec3cd
Release 1.0.0-215@suse-tumbleweed/x86_64
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-26 09:06:54 +00:00
bbbc6a08af
Release 1.0.0-215@kali-rolling/amd64
...
Test repo on all supported platforms / CI (push) Successful in 4m13s
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-25 23:08:54 +00:00
91732cbfa1
Start version: 1.0.0-215
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-25 23:07:55 +00:00
f23c0560e5
cmds.secrets.lib.util.compile_template_file(): Fix
...
Fix broken call to FilesContext(ctx).compile_template_file() after trying it out the first time.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-25 13:51:12 +02:00
37fcf56ad2
lib.FileContext._mktemp(): Fix missing self before _chroot()
...
_mktemp() call _chroot() instead of self._chroot(), fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-25 13:50:42 +02:00
cfe47b984b
Release 1.0.0-214@suse-tumbleweed/x86_64
...
Test repo on all supported platforms / CI (push) Successful in 3m57s
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-25 07:32:37 +00:00
a12e0df753
Release 1.0.0-214@kali-rolling/amd64
...
Test repo on all supported platforms / CI (push) Successful in 4m3s
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-25 07:19:35 +00:00
a888690fa3
Start version: 1.0.0-214
...
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-25 07:18:37 +00:00
66b968c51c
TarIo.TarIoTarFile._extract(): Fix typo
...
TarIoTarFile is currently unused but should still be correct, so fix a typo in _extract().
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-25 08:47:45 +02:00
069899e48e
lib: Remove leftover breakpoints
...
Remove two breakpoints not belonging in the code of TarIo and Types.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-25 08:47:21 +02:00
a9475de48e
lib.ExecContext: Add open() + close() around _run()
...
Enclose ExecContext._run() in an open() / close() - pair. This is convenient for the caller in that it doesn't need to take care of opening and closing for one call only, and inconvenient in that it forces the caller to conciously add an open() / close() - pair around multiple run() calls where it wants the context to stay open in between. Or use the ExecContext as a context manager.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-25 08:45:29 +02:00
3ac3aff997
lib: Fix silent assertitons
...
There are a couple of assert statements in the codebase which can make jw-pkg fail without any detail whatsoever if --backtrace is not specified, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-25 08:44:49 +02:00
120a6e4d34
cmds.secrets.CmdInstall: Add command
...
Support
jw-pkg secrets install mypasswords.tar.gpg [package-1 [package-2 ...]]
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
b88a8ee299
cmds.secrets.lib.DistroContext.install(): Add method
...
Add DistroContext.install(). It takes a tar file containing secrets, decrypts it, and installs all secrets needed on target and present in that file. For every file that should be extracted, it logs if it acutally did something or didn't.
It also features an only_missing argument, which is just a stub for "allow to define somy extraction policy with respect to replacing all / some / not replace / whatever. Not thought through.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
db22f11b32
cmds.posix.tar.CmdExtract: Log number of extracted files
...
Add a little log line at execution end, saying how many files were actually extracted.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
7309ec687e
lib.TarIo.extract(): Return list of extracted files
...
Make TarIo.extract return the list of files that were actually extracted.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
f2ca32a343
CopyContext: Replace src_uri, dst_uri by src, dst
...
Allow to pass ready-made FileContext objects to CopyContext's destructor so it doesn't need to instantiate them itself.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
772512aee0
FileContext.open() / close(): Only call wrapped once
...
FileContext's _open() and _close() are called everytime their wrapper is called, which tasks the caller with keeping track of whether they were already called or not. Be a little easier on the caller, keep track in an open count, and call _open() only once for multiple calls to open(), and close() likewise. The caller still needs to make sure the number of open() and close() calls matches.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
514d66dac1
cmds.distro.CmdInfo: Rename to cmds.platform.CmdInfo
...
Rename command "distro" to "pkg" together with "info", its last remaining subcommand. "distro" is often used in the sense of "Linux distribution", which would be too narrow for the targets jw-pkg could theoretically support.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
5830984bfc
cmds.distro.CmdXxx: Rename to cmds.pkg.CmdXxx
...
With the exception of the "info" subcommand, nearly all of distro's subcommands deal with package managing, so push them into their own command category.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00
c19111e5b6
App: Rename global option --uri -> --target
...
--uri is unnecessarily generic in that it could mean the URI of anything. --target makes it clearer that operations are to be exectuted on that target.
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-24 16:53:55 +02:00