nixos-config/modules/nixos/services/syncthing/default.nix

42 lines
1,016 B
Nix

{
lib,
pkgs,
inputs,
namespace,
system,
target,
format,
virtual,
systems,
config,
...
}:
with lib;
with lib.${namespace}; let
cfg = config.${namespace}.services.syncthing;
impermanence = config.${namespace}.impermanence;
in {
options.${namespace}.services.syncthing = with types; {
enable = mkBoolOpt false "Enable syncthing service for the user";
user = lib.mkOption {
type = lib.types.singleLineStr;
default = "";
example = "nixos";
description = ''
User, that will use the syncthing service (only one at a time)
'';
};
};
config = mkIf cfg.enable {
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; # Don't create default ~/Sync folder
services.syncthing = {
inherit (cfg) user;
configDir =
if impermanence.enable
then "${impermanence.persistentStorage}/home/${cfg.user}/.config/syncthing"
else "/home/${cfg.user}/.config.syncthing";
enable = true;
};
};
}