Commit graph jw-pkg/src/python/jw/pkg/cmds/posix
Author SHA1 Message Date
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
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
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
7357092576
cmds.posix.Tar: Add command
Add a "jw-pkg posix tar" command. Currently the only thing that can
be done with it is extracting.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-23 20:18:42 +02:00
aa7275f426 App.distro_xxx: Move properties to Distro.xxx
Commit a19679fec reverted the first attempt to make AsyncSSH reuse
one connection during an instance lifetime. That failed because a lot
of distribution-specific properties were filled in a new event loop
thread started by AsyncRunner, and AsyncSSH didn't like that.

This commit is the first part of the solution: Move those properties
from the App class to the Distro class, and load the Distro class
in an async loader. As soon as it's instantiated, it can provide all
its properties without cluttering the code with async keywords.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-19 21:00:21 +02:00
fe3508036e lib.FileContext.put(): Change param mode type str -> int
Don't pass mode as a string to put(). Given the multitunde of
possible string representations for numbers, some understood by
int(string, 0) and some not, there's too much room for passing
strings which are unparseable, or worse, prone to be parsed wrongly.

However, pass mode down to _put() as a string for convenience,
because that's what most _put() implementations will need to use. If
they don't, converting to int is easy from the one defined string
format.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-18 10:43:31 +02:00
b72c417510 cmds.posix.CmdCopy: Support platform macros
Expand platform macros (as in %{codename}) in the src and dst command
arguments. Expansion can be turned off by -F --fixed-strings.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-16 13:35:02 +02:00
e811b2dc14 cmds.posix.CmdCopy: Add module
Add CmdCopy, designed to copy data from the filesystem to another
location in the filesystem. Not necessarily local file systems, the
URLs can be all URLs supported by ExecContext.run().

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-16 12:56:43 +02:00
16bb4e5bed cmds.CmdPosix: Add command
Add a new group of commands - "posix". The current command categories
are not a good fit for that: "projects" is for CI, "distro" is
distribution-specific for CD, and secrets is for handling secrets
specifically. Introduce the more general command group "posix", a
class of commands not POSIX compliant in the exposed API, but
primarily using POSIX utilities as workhorse.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-16 12:56:22 +02:00