nix: module improvements

This commit is contained in:
Gabriel Fontes
2023-06-11 20:12:13 -03:00
parent 5131e76a1d
commit 7f1f4eaf4d

View File

@@ -14,6 +14,12 @@ in {
The package implementing disconic
'';
};
user = mkOption {
type = types.str;
default = "yrmos";
description = "Service user that will run the daemon.";
};
subsonicUrl = mkOption {
type = types.str;
description = "Subsonic library base API URL";
@@ -30,6 +36,10 @@ in {
type = types.path;
description = "File path containing discord token";
};
discordGuild = mkOption {
type = types.str;
description = "Your server's guild ID, to auto-register commands";
};
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
@@ -41,13 +51,27 @@ in {
systemd.services.disconic = {
description = "Disconic, a Discord Subsonic Bot";
wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = lib.escapeShellArgs ([
(lib.getExe cfg.package)
"--subsonic-url=${cfg.subsonicUrl}"
"--subsonic-user=${cfg.subsonicUser}"
"--subsonic-password=$(cat ${cfg.subsonicPasswordFile})"
"--discord-token=$(cat ${cfg.discordTokenFile}"
] ++ cfg.extraArgs);
serviceConfig = {
Restart = "always";
User = cfg.user;
ExecStart = lib.escapeShellArgs ([
(lib.getExe cfg.package)
"--subsonic-url=${cfg.subsonicUrl}"
"--subsonic-user=${cfg.subsonicUser}"
"--subsonic-password=$(cat ${cfg.subsonicPasswordFile})"
"--discord-token=$(cat ${cfg.discordTokenFile})"
"--discord-guild=${cfg.discordGuild}"
] ++ cfg.extraArgs);
};
};
users = {
users.${cfg.user} = {
description = "disconic service user";
isSystemUser = true;
group = cfg.user;
};
groups.${cfg.user} = { };
};
};
}