clanModules/syncthing-static-peers: Migrate to vars
Part of the #2511 migration.
This commit is contained in:
@@ -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
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user