mirror of
https://github.com/LnL7/nix-darwin.git
synced 2024-12-14 11:57:34 +00:00
hydra: use nix.gc.automatic
This commit is contained in:
parent
750e02b10c
commit
d049c7b97a
4 changed files with 51 additions and 65 deletions
|
@ -45,7 +45,7 @@ let
|
|||
./modules/services/emacs.nix
|
||||
./modules/services/mopidy.nix
|
||||
./modules/services/nix-daemon.nix
|
||||
./modules/services/nix-gc.nix
|
||||
./modules/services/nix-gc
|
||||
./modules/services/postgresql
|
||||
./modules/programs/bash.nix
|
||||
./modules/programs/fish.nix
|
||||
|
|
|
@ -18,20 +18,17 @@ with lib;
|
|||
|
||||
services.nix-daemon.enable = true;
|
||||
|
||||
nix.trustedUsers = [ "@hydra" ];
|
||||
|
||||
nix.extraOptions = ''
|
||||
pre-build-hook =
|
||||
'';
|
||||
|
||||
environment.etc."per-user/lnl/.ssh/authorized_keys".text = concatStringsSep "\n"
|
||||
nix.gc.automatic = true;
|
||||
nix.gc.options = "--max-freed $((25 * 1024**3 - 1024 * $(df -P -k /nix/store | tail -n 1 | awk '{ print $4 }')))";
|
||||
|
||||
environment.etc."per-user/hydra/ssh/authorized_keys".text = concatStringsSep "\n"
|
||||
[ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCVsc0pHGsskoayziMhA2e59bHPWe0bbKgusmqhuJFBGQ1BAk9UmPzKCWE3nCiV6CLD1+SygVkBjb06DYtc+94BnzviCa9qZtL0G4+2vhp6x8OvXh8xlf/eWw3k5MWlvu+kjJFpbW8wHWTiUqzH+uEeHklAosT0lFNjiIYd/Vs3JAezhUR62a6c7ZjWOd5F7ALGEKzOiwC4i37kSgGsIWNCbe0Ku7gyr718zhMGeyxax6saHhnkSpIB+7d6oHhKeiJSFMWctNmz1/qxXUPbxNaJvqgdKlVHhN+B7x/TIbkVr5pTC59Okx9LTcpflFIv79VT+Gf1K7VypZpSvJjG0xFRt8iDs1+ssWFBfvpo94vUbZ+ZwMDcBGR5iJeO41Gj5fYn5aaDl32RXfJ9Fkwael1L6pcXtkIc66jk+KQQpgoeNj8Y3Emntpqva/2AM41wDDvr5tKp5KhEKFLM95CoiWq+g88pZLcpqLK7wooDVqNkVUEbMaj9lBN0AzU9mcsIRGvTa6CmWAdBvwqS2fRZD97Oarqct9AWgb0X6mOUq9BJNi4i4xvjgnVkylLwtLUnibR/PeXMtkb9bv6BEZXNf5ACqxSjKXJyaIHI65I5TILCr5eEgaujgvmkREn6U3T1NZAUIeVe9aVYLqehYh79OHUBzggoHqidRrXBB/6zdg9UgQ=="
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCnubA1pRqlpoAXkZ1q5nwhqi1RY2z840wFLFDj7vAMSups9E2U8PNIVtuVYApZpkBWIpzD4GGbQTF5Itnu5uBpJswc2Yat9yGWO/guuVyXIaRoBIM0Pg1WBWcWsz+k4rNludu9UQ74FHqEiqZIuIuOcgV+RIZn8xQlGt2kUqN9TWboHhZz8Zhx7EtGSJH6MJRLn3mA/pPjOF6k1jiiFG1pVDuqBTZPANkelWYCWAJ46jCyhxXltWE/jkBYGc/XbB8yT7DFE1XC6TVsSEp68R9PhVG3yqxqY06sniEyduSoGt/TDr6ycERd93bvLElXFATes85YiFszeaUgayYSKwQPe0q7YeHMhIXL0UYJYaKVVgT9saFDiHDzde7kKe+NA+J4+TbIk7Y/Ywn0jepsYV13M7TyEqgqbu9fvVGF3JI9+4g0m1gAzHTa7n6iiAedtz+Pi79uCEpRD2hWSSoLWroyPlep8j1p2tygtFsrieePEukesoToCTwqg1Ejnjh+yKdtUbc6xpyRvl3hKeO8QbCpfaaVd27e4vE4lP2JMW6nOo8b0wlVXQIFe5K2zh52q1MSwhLAq6Kg8oPmgj0lru4IivmPc+/NVwd3Qj3E9ZB8LRfTesfbcxHrC8lF5dL/QpLMeLwebrwCxL19gI0kxmDIaUQuHSyP3B2z+EmBKcN/Xw=="
|
||||
];
|
||||
|
||||
launchd.daemons.nix-gc = {
|
||||
command = "${config.nix.package}/bin/nix-collect-garbage -d";
|
||||
environment.NIX_REMOTE = optionalString config.services.activate-system.enable "daemon";
|
||||
serviceConfig.KeepAlive = false;
|
||||
serviceConfig.ProcessType = "Background";
|
||||
serviceConfig.StartInterval = 86400;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,55 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.nix.gc;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
nix.gc = {
|
||||
|
||||
automatic = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = "Automatically run the garbage collector at a specific time.";
|
||||
};
|
||||
|
||||
# TODO: parse dates
|
||||
# dates = mkOption {
|
||||
# default = "03:15";
|
||||
# type = types.str;
|
||||
# description = ''
|
||||
# Specification (in the format described by
|
||||
# <citerefentry><refentrytitle>systemd.time</refentrytitle>
|
||||
# <manvolnum>5</manvolnum></citerefentry>) of the time at
|
||||
# which the garbage collector will run.
|
||||
# '';
|
||||
# };
|
||||
|
||||
options = mkOption {
|
||||
default = "";
|
||||
example = "--max-freed $((64 * 1024**3))";
|
||||
type = types.str;
|
||||
description = ''
|
||||
Options given to <filename>nix-collect-garbage</filename> when the
|
||||
garbage collector is run automatically.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.automatic {
|
||||
|
||||
launchd.daemons.nix-gc = {
|
||||
command = "${config.nix.package}/bin/nix-collect-garbage ${cfg.options}";
|
||||
serviceConfig.RunAtLoad = false;
|
||||
serviceConfig.StartCalendarInterval = mkDefault
|
||||
[ { Hour = 3; Minute = 15; }
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
44
modules/services/nix-gc/default.nix
Normal file
44
modules/services/nix-gc/default.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.nix.gc;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
nix.gc.automatic = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Automatically run the garbage collector at a specific time.";
|
||||
};
|
||||
|
||||
nix.gc.interval = mkOption {
|
||||
type = types.attrs;
|
||||
default = { Hour = 3; Minute = 15; };
|
||||
description = "The time interval at which the garbage collector will run.";
|
||||
};
|
||||
|
||||
nix.gc.options = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "--max-freed $((64 * 1024**3))";
|
||||
description = ''
|
||||
Options given to <filename>nix-collect-garbage</filename> when the
|
||||
garbage collector is run automatically.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.automatic {
|
||||
|
||||
launchd.daemons.nix-gc = {
|
||||
command = "${config.nix.package}/bin/nix-collect-garbage ${cfg.options}";
|
||||
environment.NIX_REMOTE = optionalString config.services.nix-daemon.enable "daemon";
|
||||
serviceConfig.RunAtLoad = false;
|
||||
serviceConfig.StartCalendarInterval = [ cfg.interval ];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue