summaryrefslogtreecommitdiff
path: root/nix/modules/impermanence.nix
diff options
context:
space:
mode:
authorPreston Pan <ret2pop@nullring.xyz>2026-03-02 00:03:12 -0800
committerPreston Pan <ret2pop@nullring.xyz>2026-03-02 00:03:12 -0800
commit9484c4ec525c02caa8a65ecfe37ed24f1d4b321d (patch)
tree676712a1504939b37a69fbee9c235dc61917cd65 /nix/modules/impermanence.nix
parenta05e0614c1bb75f77717a943dc4ac75a0cca4652 (diff)
Remove local nix directory to prepare for submodule
Diffstat (limited to 'nix/modules/impermanence.nix')
-rw-r--r--nix/modules/impermanence.nix100
1 files changed, 0 insertions, 100 deletions
diff --git a/nix/modules/impermanence.nix b/nix/modules/impermanence.nix
deleted file mode 100644
index 4fa886a..0000000
--- a/nix/modules/impermanence.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ lib, config, ... }:
-{
- assertions = [
- {
- assertion = (! (config.monorepo.profiles.impermanence.enable && (! (config.monorepo.vars.fileSystem == "btrfs"))));
- message = "Impermanence requires btrfs filesystem.";
- }
- ];
-
- boot.initrd.postResumeCommands = (if config.monorepo.profiles.impermanence.enable then lib.mkAfter ''
- mkdir /btrfs_tmp
- mount -t btrfs -n -o subvol=/ /dev/mapper/crypted /btrfs_tmp
- if [[ -e /btrfs_tmp/root ]]; then
- mkdir -p /btrfs_tmp/old_roots
- timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
- mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
- fi
-
- delete_subvolume_recursively() {
- IFS=$'\n'
- for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
- delete_subvolume_recursively "/btrfs_tmp/$i"
- done
- btrfs subvolume delete "$1"
- }
-
- for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
- delete_subvolume_recursively "$i"
- done
-
- btrfs subvolume create /btrfs_tmp/root
- umount -n /btrfs_tmp
- '' else "");
-
- boot.initrd.luks.devices = (if (config.monorepo.vars.fileSystem == "btrfs") then {
- crypted = {
- device = "/dev/disk/by-partlabel/disk-main-luks";
- };
- } else {});
-
- fileSystems = if (config.monorepo.profiles.impermanence.enable) then {
- "/persistent" = {
- neededForBoot = true;
- };
- "/home" = {
- neededForBoot = true;
- };
- } else {};
-
- environment.persistence."/persistent" = {
- enable = config.monorepo.profiles.impermanence.enable;
- hideMounts = true;
- directories = [
- "/var/log"
- "/var/lib/bluetooth"
- "/var/lib/nixos"
- "/var/lib/systemd/coredump"
- "/etc/NetworkManager/system-connections"
- ];
- files = [
- "/etc/machine-id"
- { file = "/var/keys/secret_file"; parentDirectory = { mode = "u=rwx,g=,o="; }; }
- ];
- users."${config.monorepo.vars.userName}" = {
- directories = [
- "Downloads"
- "music"
- "Pictures"
- "Documents"
- "Videos"
- "Monero"
- "org"
- "monorepo"
- "soundfont"
- "website_html"
- "ardour"
- "audacity"
- "img"
- "email"
- "projects"
- "secrets"
-
- ".emacs.d"
- ".elfeed"
- ".electrum"
- ".mozilla"
- ".bitmonero"
- ".config"
- ".crypto"
- { directory = ".gnupg"; mode = "0700"; }
- { directory = ".ssh"; mode = "0700"; }
- { directory = ".local/share/keyrings"; mode = "0700"; }
- ".local/share/direnv"
- ];
- files = [
- ".emacs"
- ];
- };
- };
-}