{ config, lib, myData, pkgs, ... }: { options.mj.services.borgstor = with lib.types; { enable = lib.mkEnableOption "Enable borg storage user"; dataDir = lib.mkOption {type = path;}; sshKeys = lib.mkOption {type = listOf str;}; }; config = with config.mj.services.borgstor; lib.mkIf enable { users.users.borgstor = { description = "Borg Storage"; home = dataDir; shell = "/bin/sh"; group = "borgstor"; isSystemUser = true; createHome = false; uid = myData.uidgid.borgstor; openssh.authorizedKeys.keys = map ( k: "command=\"${pkgs.borgbackup}/bin/borg serve --restrict-to-path ${dataDir}\",restrict ${k}" ) sshKeys; }; users.groups.borgstor.gid = myData.uidgid.borgstor; }; }