···
cfg = config.services.cachix-agent;
···
meta.maintainers = [ lib.maintainers.domenkozar ];
options.services.cachix-agent = {
17
-
enable = mkEnableOption "Cachix Deploy Agent: https://docs.cachix.org/deploy/";
14
+
enable = lib.mkEnableOption "Cachix Deploy Agent: https://docs.cachix.org/deploy/";
16
+
name = lib.mkOption {
17
+
type = lib.types.str;
description = "Agent name, usually same as the hostname";
default = config.networking.hostName;
defaultText = "config.networking.hostName";
26
-
verbose = mkOption {
23
+
verbose = lib.mkOption {
24
+
type = lib.types.bool;
description = "Enable verbose output";
32
-
profile = mkOption {
33
-
type = types.nullOr types.str;
29
+
profile = lib.mkOption {
30
+
type = lib.types.nullOr lib.types.str;
description = "Profile name, defaults to 'system' (NixOS).";
39
-
type = types.nullOr types.str;
35
+
host = lib.mkOption {
36
+
type = lib.types.nullOr lib.types.str;
description = "Cachix uri to use.";
44
-
package = mkPackageOption pkgs "cachix" { };
41
+
package = lib.mkPackageOption pkgs "cachix" { };
46
-
credentialsFile = mkOption {
43
+
credentialsFile = lib.mkOption {
44
+
type = lib.types.path;
default = "/etc/cachix-agent.token";
Required file that needs to contain CACHIX_AGENT_TOKEN=...
···
55
-
config = mkIf cfg.enable {
52
+
config = lib.mkIf cfg.enable {
systemd.services.cachix-agent = {
description = "Cachix Deploy Agent";
wants = [ "network-online.target" ];
···
${cfg.package}/bin/cachix ${lib.optionalString cfg.verbose "--verbose"} ${
lib.optionalString (cfg.host != null) "--host ${cfg.host}"
79
-
deploy agent ${cfg.name} ${optionalString (cfg.profile != null) cfg.profile}
76
+
deploy agent ${cfg.name} ${lib.optionalString (cfg.profile != null) cfg.profile}