26 lines
699 B
Nix
26 lines
699 B
Nix
|
{ config, lib, pkgs, ... }:
|
||
|
|
||
|
let
|
||
|
cfg = config.sisyphus.nix.gc;
|
||
|
in {
|
||
|
options.sisyphus.nix.gc = {
|
||
|
weekly.enable = lib.mkEnableOption "Scheduled Nix garbage-collection";
|
||
|
onFull.enable = lib.mkEnableOption "Nix garbage-collection when disk is almost full";
|
||
|
};
|
||
|
|
||
|
config.nix = {
|
||
|
# If the disk has less than 100MiB, free up to 2GiB by garbage-collecting.
|
||
|
extraOptions = lib.mkIf cfg.onFull.enable ''
|
||
|
min-free = ${toString (100 * 1024 * 1024)}
|
||
|
max-free = ${toString (2048 * 1024 * 1024)}
|
||
|
'';
|
||
|
|
||
|
# Scheduled garbage-collect
|
||
|
gc = lib.mkIf cfg.weekly.enable {
|
||
|
automatic = true;
|
||
|
dates = "weekly";
|
||
|
options = "--delete-older-than 30d";
|
||
|
};
|
||
|
};
|
||
|
}
|