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
ceea557a61
algo.ShuntingYard: Increase debug logging
...
Make ShuntingYard log more. Might be overkill in which case the change should be reversed.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-11 10:46:19 +02:00
1e16c0ffb1
Cmds: Add argcomplete support
...
argcomplete takes the arguments added to argparse, and builds bash completion with it. Add it to all Cmds based executables.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-11 10:43:47 +02:00
428692ea3a
Streamline Python file headers somewhat
...
- Add coding statement
- Import all modules in one line where possible
- Order: __future__, typing, plain imports, from imports,
janware modules
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-10 05:14:06 +02:00
862a5dbc95
ArgsContainer.specified_args: Add property
...
ArgsContainer.specified_args is a list of arguments that were explicitly specified, i.e. not defaults, in the order they were specified in.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-06 07:12:52 +02:00
d35a5588cd
Cmds.__run(): Don't exit(0)
...
WSGI doesn't like sys.exit() being called, so avoid it. Two cases need to be taken into consideration:
1. No exception thrown by self.args.func()
The variable exit_status is zero, we can check that and _not_
call sys.exit()
2. Exception thrown by self.args.func()
In that case, the exception should be raised, to be caught by
WSGI / ASGI whatever to do what they want with it. The code
calling sys.exit() is never reached. Hence, we need to add
--backtrace to the invocation options.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-05 12:27:11 +02:00
1a267dd2e5
cast.from_env(): Add function
...
cast.from_env() takes an environment variable name instead of the string as the first argument and does the obvious thing. It also takes a default and saves the conversion in case the environment variable doesn't exist.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-05 10:54:30 +02:00
8b6504f01b
fixup! algo.ShuntingYard: Use slog() for debugging
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-04 10:22:14 +02:00
49e9b5ab5d
algo.ShuntingYard.tokenize(): Allow mixed quotes
...
"A string which contains 'single quotes'" or 'a string containing "double quotes"' is not tokenized as quoted. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-04 08:59:58 +02:00
27e2a49d1e
algo.ShuntingYard: Use slog() for debugging
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-04 08:58:42 +02:00
271ea32dcd
algo.ShuntingYard.tokenize(): Support double quotes
...
tokenize() only sorts single quoted strings into QUOTED, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-06-27 09:46:12 +02:00
29f57ec187
algo.ShuntingYard: Add operator()
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-06-09 09:16:48 +02:00
2efe2f97fa
Config.__getitem__(): Raise KeyError if need be
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-06-06 13:39:24 +02:00