Add a property to get a file's basename. For
https://host.com/path/to/file?key=val
.basename should return "file"".
Signed-off-by: Jan Lindemann <jan@janware.com>
Make pkg-release-reinstall depend on get-pub to do the obvious: Have
the changes from Forgejo pull requests integrated by CI, too.
Signed-off-by: Jan Lindemann <jan@janware.com>
Remove JW_PKG_EXTRA_SSH_OPTS before git pull in the context of
get-pub / git-get-pub because it contains -l username, which collides
with Forge-style git@<forge> remote URIs.
Signed-off-by: Jan Lindemann <jan@janware.com>
Add get-pub for top directory / projects directory level. This is a
janware specific target needed for CI. It integrates the current
master branch from the new Forgejo-based Git repos.
That said, this will likely need to go along with other release
machinery. Packaging is good, but releasing over a bunch of
directories is an intricate process, as-is only usable by janware
itself, and doesn't need to be part of jw-pkg.
Signed-off-by: Jan Lindemann <jan@janware.com>
If a project is not initialized via make pkg-init-%, it doesn't
contain a VERSION file. When CI tries to build and package such a
project, it auto-creates a VERSION file, but a broken one: The
revision isn't properly seperated by a dash but by a dot, which makes
CI give up while parsing it.
Signed-off-by: Jan Lindemann <jan@janware.com>
Currently, completing a release works with a plain git push. It may
push to several repos, depending on how the client repo's origin's
pushurl is configured. Those repos may have different user names, and
if the ssh wrapper added -l via JW_PKG_SSH_EXTRA_OPTS, the push would
fail. Hence, disable JW_PKG_SSH_EXTRA_OPTS for that case.
Signed-off-by: Jan Lindemann <jan@janware.com>
janware upstream development server moved from git.janware.com to
devgit.janware.com. This commit follows the move with pretty much a
simple
s/git.janware.com/devgit.janware.com/
over jw-pkg. It found 14 matches, that's pretty bad.
FIXME: Reduce the redundancy, or, better, replace the
devgit.janware.com goodies by a more generally useful concept
altogether.
Signed-off-by: Jan Lindemann <jan@janware.com>
Add a couple of properties and methods that come in handy when
manipulating URIs:
.path
.safe_full_with_username
do the obvious, and these return new Uri objects with modified paths:
.new_add_path()
.new_replace_path()
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>