aboutsummaryrefslogtreecommitdiffstats
path: root/sys/impermanence
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-08-26 23:42:21 +0200
committerSoispha <soispha@vhack.eu>2023-08-26 23:42:21 +0200
commit3f600ab07dbad3b6dd7655587ddea158b19aea71 (patch)
tree7164ccd965e1d14ade970aeb8eb188b1442a6c91 /sys/impermanence
parentStyle(treewide): Format all lua-files makes lua ➛ nix easier (diff)
downloadnixos-config-3f600ab07dbad3b6dd7655587ddea158b19aea71.zip
Refactor(treewide): Abbreviate path names
Diffstat (limited to 'sys/impermanence')
-rw-r--r--sys/impermanence/default.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/sys/impermanence/default.nix b/sys/impermanence/default.nix
new file mode 100644
index 00000000..a9be951a
--- /dev/null
+++ b/sys/impermanence/default.nix
@@ -0,0 +1,52 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.soispha.impermanence;
+ networkmanager =
+ if config.networking.networkmanager.enable
+ then [
+ "/etc/NetworkManager" # store the networkmanager configs
+ ]
+ else [];
+ secureboot =
+ if config.boot.lanzaboote.enable
+ then [
+ "/etc/secureboot"
+ ]
+ else [];
+ directories =
+ [
+ "/etc/nixos"
+ "/var/log"
+ # TODO: the following entries need to be checked
+ #"/var/lib/bluetooth"
+ #"/var/lib/nixos"
+ #"/var/lib/systemd/coredump"
+ ]
+ ++ networkmanager
+ ++ secureboot;
+in {
+ options.soispha.impermanence = {
+ enable = lib.mkOption {
+ type = lib.types.bool;
+ default = true;
+ description = lib.mdDoc "Disk setup with disko";
+ };
+ };
+ config = lib.mkIf cfg.enable {
+ # needed for the hm impermanence config
+ programs.fuse.userAllowOther = true;
+
+ environment.persistence = {
+ "/srv" = {
+ hideMounts = true;
+ inherit directories;
+ files = [
+ "/etc/machine-id"
+ ];
+ };
+ };
+ };
+}