about summary refs log tree commit diff
path: root/pkgs/applications/networking/pyload-ng
diff options
context:
space:
mode:
authorBruno BELANYI <bruno@belanyi.fr>2023-12-24 21:01:22 +0100
committerBruno BELANYI <bruno@belanyi.fr>2024-01-18 19:07:08 +0000
commit0ccbca2746300e182ed5b8a72753535556ff9f14 (patch)
tree5736be365ed2263b5aa8335f26b55d8f95b756aa /pkgs/applications/networking/pyload-ng
parentc751c1f9a963f6608c429e555e6b8e3d18a0d67d (diff)
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.
Diffstat (limited to 'pkgs/applications/networking/pyload-ng')
-rw-r--r--pkgs/applications/networking/pyload-ng/declarative-env-config.patch18
-rw-r--r--pkgs/applications/networking/pyload-ng/default.nix3
2 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/applications/networking/pyload-ng/declarative-env-config.patch b/pkgs/applications/networking/pyload-ng/declarative-env-config.patch
new file mode 100644
index 0000000000000..42f89ee485cb2
--- /dev/null
+++ b/pkgs/applications/networking/pyload-ng/declarative-env-config.patch
@@ -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:
diff --git a/pkgs/applications/networking/pyload-ng/default.nix b/pkgs/applications/networking/pyload-ng/default.nix
index aa2a0bd592e4e..eb0b6af94efe8 100644
--- a/pkgs/applications/networking/pyload-ng/default.nix
+++ b/pkgs/applications/networking/pyload-ng/default.nix
@@ -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 = ''