]> git.scottworley.com Git - syncthing-autoregister/blobdiff - modules/syncthing-autoregister.nix
No default path
[syncthing-autoregister] / modules / syncthing-autoregister.nix
index 158cd520f5c2d787c6168fa0990fc2f1c5d657b2..da9df86d1f41e59293af54d9fb525069204ae0ca 100644 (file)
@@ -4,14 +4,33 @@ let
   cfg = config.services.syncthing.autoRegister;
   localpkgs = import ../. { inherit pkgs; };
   register-script = pkgs.writeShellScript "syncthing-autoregister-script" ''
-    ${localpkgs.syncthing-set-id}/bin/syncthing-set-id /tmp/syncthing-auto-register-test-device-ids.nix
+    ${localpkgs.syncthing-set-id}/bin/syncthing-set-id ${
+      escapeShellArg cfg.path
+    }
   '';
 in {
   options = {
     services.syncthing.autoRegister = {
       enable = mkEnableOption ''
-        Automatically write the local syncthing device id to /tmp/syncthing-auto-register-test-device-ids.nix
+        Automatically write the local syncthing device id to the nix module
+        file <option>services.syncthing.autoRegister.path</option>.
       '';
+      path = mkOption {
+        type = types.path;
+        description = ''
+          Path of nix module file to write our syncthing
+          device id into.  It will be written into
+          services.syncthing.declarative.devices.<hostname>.id.  This file
+          can be imported as a NixOS module.
+
+          We recommend using a separate file just for this purpose.  I.e.,
+          don't point this at your main NixOS config.  Instead, import this
+          file from your main NixOS config.  (The current nix-configuration
+          read-modify-write implementation only supports attrsets of strings;
+          it does not support functions, which you probably use in your
+          main configuration.)
+        '';
+      };
     };
   };
   config = mkIf cfg.enable {