/ nix / home.nix
home.nix
 1  {
 2    config,
 3    lib,
 4    histerEnv,
 5    ...
 6  }:
 7  {
 8    imports = [
 9      ./options.nix
10    ];
11  
12    config = lib.mkIf config.services.hister.enable {
13      home.packages = [ config.services.hister.package ];
14  
15      systemd.user.services.hister = {
16        Unit = {
17          Description = "Hister web history service";
18          After = [ "network.target" ];
19        };
20  
21        Service = {
22          ExecStart = "${lib.getExe config.services.hister.package} listen";
23          Restart = "on-failure";
24          WorkingDirectory = lib.mkIf (config.services.hister.dataDir != null) config.services.hister.dataDir;
25  
26          Environment = lib.mapAttrsToList (name: value: "${name}=${value}") (
27            histerEnv config.services.hister
28          );
29        };
30  
31        Install = {
32          WantedBy = [ "default.target" ];
33        };
34      };
35  
36      launchd.agents.hister = {
37        enable = true;
38        config = {
39          ProgramArguments = [
40            (lib.getExe config.services.hister.package)
41            "listen"
42          ];
43          KeepAlive = true;
44          WorkingDirectory = lib.mkIf (config.services.hister.dataDir != null) config.services.hister.dataDir;
45  
46          EnvironmentVariables = histerEnv config.services.hister;
47        };
48      };
49    };
50  }