summary refs log tree commit diff
diff options
context:
space:
mode:
authorPascal Bach <pascal.bach@nextrem.ch>2022-01-25 22:10:03 +0100
committerGitHub <noreply@github.com>2022-01-25 22:10:03 +0100
commitee59b970450db9d8cbd9efda5f67d66fdfddfda5 (patch)
tree0cb70b28a01f9f88ae04a409ffaf783529c11fda
parentc0ad24ee1de4cb454c0b5abf340acdc5847f88a5 (diff)
parent2a701e80619658fd6554f2c2370545b511da087e (diff)
downloadnixpkgs-ee59b970450db9d8cbd9efda5f67d66fdfddfda5.tar
nixpkgs-ee59b970450db9d8cbd9efda5f67d66fdfddfda5.tar.gz
nixpkgs-ee59b970450db9d8cbd9efda5f67d66fdfddfda5.tar.bz2
nixpkgs-ee59b970450db9d8cbd9efda5f67d66fdfddfda5.tar.lz
nixpkgs-ee59b970450db9d8cbd9efda5f67d66fdfddfda5.tar.xz
nixpkgs-ee59b970450db9d8cbd9efda5f67d66fdfddfda5.tar.zst
nixpkgs-ee59b970450db9d8cbd9efda5f67d66fdfddfda5.zip
Merge pull request #155473 from yayayayaka/matrix-synapse-administration
nixos/matrix-synapse: Wrap register_new_matrix_user
-rw-r--r--nixos/modules/services/misc/matrix-synapse.nix26
1 files changed, 26 insertions, 0 deletions
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index bee4d7667c8..feca4c5465f 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -119,6 +119,30 @@ ${cfg.extraConfig}
 
   hasLocalPostgresDB = let args = cfg.database_args; in
     usePostgresql && (!(args ? host) || (elem args.host [ "localhost" "127.0.0.1" "::1" ]));
+
+  registerNewMatrixUser =
+    let
+      isIpv6 = x: lib.length (lib.splitString ":" x) > 1;
+      listener =
+        lib.findFirst (
+          listener: lib.any (
+            resource: lib.any (
+              name: name == "client"
+            ) resource.names
+          ) listener.resources
+        ) (lib.last cfg.listeners) cfg.listeners;
+    in
+    pkgs.writeShellScriptBin "matrix-synapse-register_new_matrix_user" ''
+      exec ${cfg.package}/bin/register_new_matrix_user \
+        $@ \
+        ${lib.concatMapStringsSep " " (x: "-c ${x}") ([ configFile ] ++ cfg.extraConfigFiles)} \
+        "${listener.type}://${
+          if (isIpv6 listener.bind_address) then
+            "[${listener.bind_address}]"
+          else
+            "${listener.bind_address}"
+        }:${builtins.toString listener.port}/"
+    '';
 in {
   options = {
     services.matrix-synapse = {
@@ -792,6 +816,8 @@ in {
         UMask = "0077";
       };
     };
+
+    environment.systemPackages = [ registerNewMatrixUser ];
   };
 
   imports = [