summaryrefslogtreecommitdiff
path: root/sys/btrfs/snapper.nix
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-08-24 18:55:06 -0600
committerAlejandro Soto <alejandro@34project.org>2025-08-24 18:55:06 -0600
commitd7ac88762db111a7962c4e14b5f4e37ab85ccac7 (patch)
tree0c2c8c4383bef74215e3b7c48a2f6b0117f084bc /sys/btrfs/snapper.nix
parent504589d1035f27b766bd33040b415b2725ece4ca (diff)
tree-wide: reformat using alejandra after enabling trivionomicon
Diffstat (limited to '')
-rw-r--r--sys/btrfs/snapper.nix99
1 files changed, 51 insertions, 48 deletions
diff --git a/sys/btrfs/snapper.nix b/sys/btrfs/snapper.nix
index 27d2779..2d29aa4 100644
--- a/sys/btrfs/snapper.nix
+++ b/sys/btrfs/snapper.nix
@@ -1,73 +1,76 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
with lib; let
cfg = config.local.btrfs;
-in
-{
+in {
options.local.btrfs = {
snapper = mkOption {
type = with lib.types; attrsOf str;
- default = { };
+ default = {};
};
};
- config = mkIf (cfg.snapper != { }) {
- environment.systemPackages = [ pkgs.local.btclone ];
+ config = mkIf (cfg.snapper != {}) {
+ environment.systemPackages = [pkgs.local.btclone];
- services.snapper.configs =
- let
- snapperConfig = _: subvolume: {
- SUBVOLUME = subvolume;
+ services.snapper.configs = let
+ snapperConfig = _: subvolume: {
+ SUBVOLUME = subvolume;
- # btrfs qgroup for space aware cleanup algorithms
- QGROUP = "";
+ # btrfs qgroup for space aware cleanup algorithms
+ QGROUP = "";
- # fraction of the filesystems space the snapshots may use
- SPACE_LIMIT = "0.5";
+ # fraction of the filesystems space the snapshots may use
+ SPACE_LIMIT = "0.5";
- # fraction of the filesystems space that should be free
- FREE_LIMIT = "0.2";
+ # fraction of the filesystems space that should be free
+ FREE_LIMIT = "0.2";
- # users and groups allowed to work with config
- ALLOW_USERS = [ ];
- ALLOW_GROUPS = [ ];
+ # users and groups allowed to work with config
+ ALLOW_USERS = [];
+ ALLOW_GROUPS = [];
- # sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
- # directory
- SYNC_ACL = "no";
+ # sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
+ # directory
+ SYNC_ACL = "no";
- # start comparing pre- and post-snapshot in background after creating
- # post-snapshot
- BACKGROUND_COMPARISON = "yes";
+ # start comparing pre- and post-snapshot in background after creating
+ # post-snapshot
+ BACKGROUND_COMPARISON = "yes";
- # run daily number cleanup
- NUMBER_CLEANUP = "yes";
+ # run daily number cleanup
+ NUMBER_CLEANUP = "yes";
- # limit for number cleanup
- NUMBER_MIN_AGE = "1800";
- NUMBER_LIMIT = "100";
- NUMBER_LIMIT_IMPORTANT = "10";
+ # limit for number cleanup
+ NUMBER_MIN_AGE = "1800";
+ NUMBER_LIMIT = "100";
+ NUMBER_LIMIT_IMPORTANT = "10";
- # create hourly snapshots
- TIMELINE_CREATE = true;
+ # create hourly snapshots
+ TIMELINE_CREATE = true;
- # cleanup hourly snapshots after some time
- TIMELINE_CLEANUP = true;
+ # cleanup hourly snapshots after some time
+ TIMELINE_CLEANUP = true;
- # limits for timeline cleanup
- TIMELINE_MIN_AGE = "1800";
- TIMELINE_LIMIT_HOURLY = "24";
- TIMELINE_LIMIT_DAILY = "7";
- TIMELINE_LIMIT_WEEKLY = "4";
- TIMELINE_LIMIT_MONTHLY = "12";
- TIMELINE_LIMIT_YEARLY = "10";
+ # limits for timeline cleanup
+ TIMELINE_MIN_AGE = "1800";
+ TIMELINE_LIMIT_HOURLY = "24";
+ TIMELINE_LIMIT_DAILY = "7";
+ TIMELINE_LIMIT_WEEKLY = "4";
+ TIMELINE_LIMIT_MONTHLY = "12";
+ TIMELINE_LIMIT_YEARLY = "10";
- # cleanup empty pre-post-pairs
- EMPTY_PRE_POST_CLEANUP = "yes";
+ # cleanup empty pre-post-pairs
+ EMPTY_PRE_POST_CLEANUP = "yes";
- # limits for empty pre-post-pair cleanup
- EMPTY_PRE_POST_MIN_AGE = "1800";
- };
- in
+ # limits for empty pre-post-pair cleanup
+ EMPTY_PRE_POST_MIN_AGE = "1800";
+ };
+ in
mapAttrs snapperConfig cfg.snapper;
};
}