]> git.ipfire.org Git - thirdparty/mkosi.git/commit
Rework configuration parsing 1420/head
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 3 Apr 2023 09:51:33 +0000 (11:51 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 6 Apr 2023 18:36:38 +0000 (20:36 +0200)
commite1bbc39754ef37b8657e231118cec0dff9110896
tree974035e1251a1362edfa2646bac9c12b58a43b53
parent701e3f451d1449e5d7f7b8d665f6238ea8750e6c
Rework configuration parsing

Instead of messing with the internals of argparse, let's implement
proper configuration file parsing.

- Parsing classes and functions are located in a new file config.py
- Configuration settings are split up from CLI settings in a list of
the new ConfigSetting dataclass
- The CLI options for configuration settings now share the same
argparse setting which simply delegates parsing to the corresponding
configuration setting parser.
- We add support for [Match] sections to enable conditionally including
configuration files. Currently Match support is implemented for
Distribution= and Release=.
- Configuration file searching is reworked. In mkosi.conf.d/, we parse
all files ending with ".conf" and directories. If a directory is parsed,
we parse mkosi.conf, mkosi.conf.d/ and all mkosi specific paths in it.
All paths are interpreted relative to the directory that we're parsing.
.github/workflows/ci.yml
mkosi.md
mkosi/__init__.py
mkosi/__main__.py
mkosi/backend.py
mkosi/config.py [new file with mode: 0644]
mkosi/distributions/debian.py
mkosi/log.py
tests/test_parse_load_args.py