Flake for my NixOS devices
1{...}: {
2 config,
3 lib,
4 ...
5}: let
6 listOfDirs = desc:
7 lib.mkOption {
8 type = lib.types.listOf lib.types.str;
9 description = desc;
10 default = [];
11 };
12in {
13 options.cow.imperm = {
14 keepLibraries = lib.mkEnableOption "persisting library (Documents, Pictures, etc.) directories";
15 keepCache = listOfDirs "List of directories to persist if impermanence is enabled. These directories are *not* meant to be backed up";
16 keep = listOfDirs "List of directories to persist if impermanence is enabled. These directories should be backed up";
17 keepFiles = listOfDirs "List of files to keep. These files should be backed up";
18 };
19
20 config = lib.mkIf config.cow.imperm.keepLibraries {
21 cow.imperm.keep = [
22 "Downloads"
23 "Music"
24 "Videos"
25 "Pictures"
26 "Documents"
27 ".ssh"
28 ];
29 cow.imperm.keepCache = [
30 ".cache"
31 ".local/state/wireplumber"
32 ];
33 };
34}