From 320df2769f2068a8f4d0119682530db89d1f8c91 Mon Sep 17 00:00:00 2001 From: Scott Worley Date: Mon, 27 Jul 2020 14:13:02 -0700 Subject: [PATCH] Option for file to write into --- modules/syncthing-autoregister.nix | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/modules/syncthing-autoregister.nix b/modules/syncthing-autoregister.nix index 158cd52..6276352 100644 --- a/modules/syncthing-autoregister.nix +++ b/modules/syncthing-autoregister.nix @@ -4,14 +4,34 @@ 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 . ''; + path = mkOption { + type = types.path; + default = "/tmp/syncthing-auto-register-test-device-ids.nix"; + description = '' + Path of nix module file to write our syncthing + device id into. It will be written into + services.syncthing.declarative.devices..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 { -- 2.44.1