clanModules/syncthing-static-peers: Migrate to vars

Part of the #2511 migration.
This commit is contained in:
a-kenji
2025-02-15 23:14:51 +07:00
parent 66e166068e
commit c795a1d895

View File

@@ -7,7 +7,8 @@
let let
dir = config.clan.core.settings.directory; dir = config.clan.core.settings.directory;
machineDir = dir + "/machines/"; machineDir = dir + "/machines/";
syncthingPublicKeyPath = machines: machineDir + machines + "/facts/syncthing.pub"; machineVarDir = dir + "/vars/per-machine/";
syncthingPublicKeyPath = machines: machineVarDir + machines + "/syncthing/id/value";
machinesFileSet = builtins.readDir machineDir; machinesFileSet = builtins.readDir machineDir;
machines = lib.mapAttrsToList (name: _: name) machinesFileSet; machines = lib.mapAttrsToList (name: _: name) machinesFileSet;
syncthingPublicKeysUnchecked = builtins.map ( syncthingPublicKeysUnchecked = builtins.map (
@@ -83,24 +84,26 @@ in
configDir = "/var/lib/syncthing"; configDir = "/var/lib/syncthing";
group = "syncthing"; group = "syncthing";
key = lib.mkDefault config.clan.core.facts.services.syncthing.secret."syncthing.key".path or null; key = lib.mkDefault config.clan.core.vars.generators.syncthing.files.key.path or null;
cert = lib.mkDefault config.clan.core.facts.services.syncthing.secret."syncthing.cert".path or null; cert = lib.mkDefault config.clan.core.vars.generators.syncthing.files.cert.path or null;
}; };
clan.core.facts.services.syncthing = { clan.core.vars.generators.syncthing = {
secret."syncthing.key" = { }; files.key = { };
secret."syncthing.cert" = { }; files.cert = { };
public."syncthing.pub" = { }; files.api = { };
generator.path = [ files.id.secret = false;
runtimeInputs = [
pkgs.coreutils pkgs.coreutils
pkgs.gnugrep pkgs.gnugrep
pkgs.syncthing pkgs.syncthing
]; ];
generator.script = '' script = ''
syncthing generate --config "$secrets" syncthing generate --config $out
mv "$secrets"/key.pem "$secrets"/syncthing.key mv $out/key.pem $out/key
mv "$secrets"/cert.pem "$secrets"/syncthing.cert mv $out/cert.pem $out/cert
cat "$secrets"/config.xml | grep -oP '(?<=<device id=")[^"]+' | uniq > "$facts"/syncthing.pub cat $out/config.xml | grep -oP '(?<=<device id=")[^"]+' | uniq > $out/id
cat $out/config.xml | grep -oP '<apikey>\K[^<]+' | uniq > $out/api
''; '';
}; };
} }