-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdragon-bot.nix
49 lines (45 loc) · 1.17 KB
/
dragon-bot.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{ pkgs, lib, config, mkIf, ... }:
let
package = pkgs.callPackage ./package.nix { };
cfg = config.services.dragon-bot;
in {
options = {
services.dragon-bot = {
home-directory = lib.mkOption {
type = lib.types.str;
default = "/home/${cfg.username}";
description = ''
The home directory of dragon-bot. Should be persistent.
'';
};
username = lib.mkOption {
type = lib.types.str;
default = "dragon-bot";
description = ''
The username for the system user running dragon-bot.
'';
};
};
};
config = {
users.groups."${cfg.username}" = {};
users.users."${cfg.username}" = {
group = "${cfg.username}";
isSystemUser = true;
createHome = true;
home = cfg.home-directory;
};
systemd.services.dragon-bot = {
description = "dragon-bot";
serviceConfig = {
User = cfg.username;
WorkingDirectory = "${package}";
ExecStart = "${package}/bin/dragon-bot";
Restart = "always";
KillMode = "control-group";
KillSignal = "KILL";
};
wantedBy = [ "multi-user.target" ];
};
};
}