nix-cache-login/nixos-module.nix
Abel Luck eeb8a69740
All checks were successful
buildbot/nix-eval Build done.
buildbot/nix-build Build done.
buildbot/nix-effects Build done.
add package to PATH
2026-02-27 08:39:18 +01:00

43 lines
1.2 KiB
Nix

{ config, lib, ... }:
let
cfg = config.services.nix-cache-login;
in
{
options.services.nix-cache-login = {
enable = lib.mkEnableOption "nix-cache-login automatic token refresh";
package = lib.mkOption {
type = lib.types.package;
description = "The nix-cache-login package to use.";
};
refreshInterval = lib.mkOption {
type = lib.types.str;
default = "15min";
description = ''
Interval between token refresh attempts, as a systemd time span.
If no valid session exists, the service logs an error and the timer
retries on the next interval. Run nix-cache-login to log in.
'';
example = "1h";
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.user.services.nix-cache-login = {
description = "Nix cache login - refresh access token";
serviceConfig = {
Type = "oneshot";
ExecStart = "${cfg.package}/bin/nix-cache-login refresh";
};
};
systemd.user.timers.nix-cache-login = {
description = "Nix cache login - periodic token refresh";
timerConfig = {
OnBootSec = "2min";
OnUnitActiveSec = cfg.refreshInterval;
};
wantedBy = [ "timers.target" ];
};
};
}