pyload-ng: add declarative configuration patch

Unfortunately, their configuration file is a home-grown format, and not
easy to parse through the usual UNIX tools.

So introduce this patch to make it possible to modify various
configuration options easily from the systemd service definition.
This commit is contained in:
Bruno BELANYI 2023-12-24 21:01:22 +01:00
parent c751c1f9a9
commit 0ccbca2746
2 changed files with 21 additions and 0 deletions

View File

@ -0,0 +1,18 @@
diff --git a/src/pyload/core/__init__.py b/src/pyload/core/__init__.py
index 4324fc700..5d915a85e 100644
--- a/src/pyload/core/__init__.py
+++ b/src/pyload/core/__init__.py
@@ -128,6 +128,13 @@ class Core:
else:
self._debug = max(0, int(debug))
+ # Allow setting any option declaratively, for the NixOS module
+ for env, value in os.environ.items():
+ if not env.startswith("PYLOAD__"):
+ continue
+ section, opt = env.removeprefix("PYLOAD__").lower().split("__")
+ self.config.set(section, opt, value)
+
# If no argument set, read storage dir from config file,
# otherwise save setting to config dir
if storagedir is None:

View File

@ -13,6 +13,9 @@ python3.pkgs.buildPythonApplication rec {
patches = [
# Makes it possible to change the default username/password in the module
./declarative-default-user.patch
# Makes it possible to change the configuration through environment variables
# in the NixOS module (aimed mostly at listen address/port)
./declarative-env-config.patch
];
postPatch = ''