Commit graph

306 commits

Author SHA1 Message Date
4f56964f1a project.conf: pkg.requires.os = python3-networkx
Depend on python3-networkx because ldap.Connection.object_class_tree needs it.
Note that this is a relatively weak necessity which installed 1.7 GB worth of
500 new packages on talmix.david.jannet. Maybe this can be solved in a less
costly way.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-14 16:38:37 +02:00
b219ab00c9 Release 1.0.0-34@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-03 23:29:30 +00:00
706dc346d8 Start version: 1.0.0-34
Signed-off-by: janware DevOps <devops@janware.com>
2026-04-03 23:28:56 +00:00
30c81af1b0 stree.serdes: Only ignore ENOENT for -include
-include ignores too many failures. It should only ignore ENOENT, all
others should throw an exception regardless.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-03 18:03:15 +02:00
1347a34481 stree.serdes: Support glob patterns for includes
Allow -include /some/dir/app.d/*.conf style includes.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-03 18:02:10 +02:00
bdb7127d27 ldap.Connection.walk(): Support decode & unroll
The entry instance passed to the walk callback contains raw results
of LDAP search operations, i.e. all attribute values are lists, and
all attribute values are bytes. Add the boolean parameters decode and
unroll to walk() as a convenience method to get decoded values. They
default to False, representing current behaviour.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-03 18:01:02 +02:00
988d420e44 ldap.Connection: Support uri config option
Currently the configuration passed to the Connection constructor
needs to contain an ldap_uri entry. Add "uri" as alias, because
ldap_uri for the LDAP config in many contexts represents a tautology
and is left out.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-03 18:00:24 +02:00
c153448608 Release 1.0.0-33@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2026-01-27 00:24:57 +00:00
9e0c7668a8 Start version: 1.0.0-33
Signed-off-by: janware DevOps <devops@janware.com>
2026-01-27 00:24:26 +00:00
9b5cd1b857 Cmd / Cmds: Update legacy type annotation
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-01-20 18:56:15 +01:00
3e979d21ae Release 1.0.0-32@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-11-28 15:16:34 +00:00
b7c39fe8bd Start version: 1.0.0-32
Signed-off-by: janware DevOps <devops@janware.com>
2025-11-28 15:16:03 +00:00
d48171f981 Replace jw-build by jw-pkg
Replace the jw-build build system by the jw-pkg build system.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-28 14:22:42 +01:00
7571b1b204 Release 1.0.0-31@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-11-06 08:05:02 +00:00
1c39240d2f Start version: 1.0.0-31
Signed-off-by: janware DevOps <devops@janware.com>
2025-11-06 08:04:26 +00:00
bb247bff3d proj.mk: Support JWBDIR_NAME and JWBDIR_SEARCH_PATH
- Streamline proj.mk over all projects a little

  - Turn the string "jw-build" into a variable which can be overridden from the
    environment.

  - Add support for JWBDIR_SEARCH_PATH, also overridable from the environment.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-05 10:42:54 +01:00
d8d514a4d1 Fix errors reported by mypy
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-02 09:42:21 +01:00
e071df39ab log._clean_str_regex: Fix missing r-qualifier
Fix missing raw string qualifier missing from regex with backslashes.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-02 09:41:14 +01:00
9dd957c9d3 jwutils.Options: Increase option parsing error verbosity
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-01-18 12:22:08 +01:00
82c0e6fe2e jwutils.Options: Add support for duplicate keys
Signed-off-by: Jan Lindemann <jan@janware.com>
2023-01-17 13:33:44 +01:00
12bf59b3cd os.misc: Add update_symlink()
update_symlink(target, link_name) does the equivalent of ln -sf, i.e.
force replacement of link_name with a new sysmlink, if it existed
before the call.

Signed-off-by: Jan Lindemann <jan@janware.com>
2023-01-17 11:40:58 +01:00
a4fb791649 Cmd / Cmds: Add config file support
An application based on Cmds will now try to read StringTree
formatted config data from a file $HOME/.<name>rc, and make the data
available via the newly added conf_value() method.

Signed-off-by: Jan Lindemann <jan@janware.com>
2022-12-08 16:44:49 +01:00
b7de950750 Add log.add_log_file()
log.add_log_file(path) allows to pass a file path log messages will
be written into. Special characters (e.g. console color codes) will
be removed from the messages.

Signed-off-by: Jan Lindemann <jan@janware.com>
2022-12-08 16:41:27 +01:00
8642b73ba1 misc: Add multi_regex_edit()
Signed-off-by: Jan Lindemann <jan@janware.com>
2022-12-04 12:34:52 +01:00
1ffdb8728a Add class Options
The Options constructor takes an options string, parses it and
makes the options available via __getitem__().

Signed-off-by: Jan Lindemann <jan@janware.com>
2022-12-01 14:29:01 +01:00
a52557570b misc.py: from . import log
Do "from . import log" instead of "from jwutils import log". It works
and looks cleaner than a module referencing itself. Not entirely sure
if that's the way to go, I must admit.

Signed-off-by: Jan Lindemann <jan@janware.com>
2022-12-02 12:14:00 +01:00
56357ae0a3 Add asyncio.ShellCmd
Add class ShellCmd, an easy API to run shell commands as
async subprocesses, capture their exit status, and have them log to slog().

Signed-off-by: Jan Lindemann <jan@janware.com>
2022-11-03 12:25:45 +01:00
f8a31e01f8 Remove asyncio/__init__.py
__init__.py is an automatically generated file, so don't include it
in git.

Signed-off-by: Jan Lindemann <jan@janware.com>
2022-11-03 12:39:16 +01:00
f8d1477473 Release 1.0.0-30@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-10-13 23:09:53 +00:00
71289136ba Start version: 1.0.0-30
Signed-off-by: janware DevOps <devops@janware.com>
2025-10-13 23:09:13 +00:00
bfd0544ff8 Fix errors reported by mypy
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-10-13 12:45:51 +02:00
f3ba709d21 Release 1.0.0-29@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-18 23:09:05 +00:00
6be4243dd6 Start version: 1.0.0-29
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-18 23:08:28 +00:00
d7db0cac47 ldap.Auth: Fix commit 72d56d9
Commit 72d56d9 (Move type argument into config) swapped the order of
arguments in Auth.load(), but the ctor of ldap.Auth didn't follow the
change, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-09-18 23:11:22 +02:00
285a01dcca Release 1.0.0-28@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-12 06:56:42 +00:00
d4d44405ff Start version: 1.0.0-28
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-12 06:56:02 +00:00
72d56d9b63 auth.Auth.load(): Move type argument into config
Auth.load() takes a "tp" argument, specifying the Auth module name to
load. In case of jw-devops, this is part of the configuration, which
is also passed as an argument. Make taking 'type' from the config the
default. Note that this changes the prototype.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-09-12 08:25:16 +02:00
c3685b94da Release 1.0.0-27@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-11 20:36:56 +00:00
447956c672 Start version: 1.0.0-27
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-11 20:36:15 +00:00
c941ef307c jwutils.ldap: Introduce 'password' alias for 'bind_pw'
jw-client-devops configures its databases with a set of config keys
which are identical - except for the 'bind_pw' key, which is called
'password'. Allow that, too.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-09-11 22:33:47 +02:00
bc9fa57a2b ldap.Auth: Fix half-baked use of jwutils.ldap module
ldap.Auth lost a lot of code when jwutils.ldap was introduced, and
rightfully so, because jwutils.ldap contains most of it. OTOH, it was
used wrongly, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-09-11 21:35:01 +02:00
d1c83c0515 Release 1.0.0-26@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-08 10:01:24 +00:00
df68c0f61f Start version: 1.0.0-26
Signed-off-by: janware DevOps <devops@janware.com>
2025-09-08 10:00:43 +00:00
1e43cdc715 jwutils.ldap: Add module
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-26 13:51:42 +02:00
e4cee86482 Config.branch(): Add throw argument
In case a branch doesn't exist, branch() throws an error. Allow to
return None instead.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-27 18:58:28 +02:00
89578b788f graph.yed.MapAttr2Shape: Add Class
MapAttr2Shape is a class which allows processing GraphML files, such
that nodes get added shape attributes understood by the yEd editor,
based on the values of other node attributes. This allows to
programmatically visualize node attributes.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-27 18:12:05 +02:00
b2b726b632 Bunch: Add class
jwutils.Bunch is a simple wrapper around a dictionary, which allows
member-type access to to dictionary data.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-27 14:11:42 +02:00
e03491bee3 project.conf: Fix: Add python3-ldap
auth.ldap requires an LDAP client, which is not reflected in the
package's dependencies, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-16 20:16:17 +02:00
5ae98ade71 Release 1.0.0-25@suse-tumbleweed/x86_64
Signed-off-by: janware DevOps <devops@janware.com>
2025-07-16 15:26:27 +00:00
f375d45088 Start version: 1.0.0-25
Signed-off-by: janware DevOps <devops@janware.com>
2025-07-16 15:19:49 +00:00