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 }