From 74c1b18ce2e0779942a26b95e0ea8b0ea9bcea39 Mon Sep 17 00:00:00 2001
From: Crony Akatsuki <crony@cronyakatsuki.xyz>
Date: Sat, 1 Feb 2025 18:35:58 +0100
Subject: [PATCH] Move nfs-share stuff to a module.

---
 hosts/nixos/configuration.nix |  7 -------
 modules/nixos/default.nix     |  2 ++
 modules/nixos/nfs-share.nix   | 18 ++++++++++++++++++
 3 files changed, 20 insertions(+), 7 deletions(-)
 create mode 100644 modules/nixos/nfs-share.nix

diff --git a/hosts/nixos/configuration.nix b/hosts/nixos/configuration.nix
index c8e9b2d..8791c05 100644
--- a/hosts/nixos/configuration.nix
+++ b/hosts/nixos/configuration.nix
@@ -89,13 +89,6 @@
   # Enable zram swap device
   zramSwap.enable = true;
 
-  # Nfs share
-  fileSystems."/mnt/share" = {
-    device = "192.168.0.4:/mnt/nfs";
-    fsType = "nfs";
-    options = ["_netdev" "noauto" "x-systemd.automount" "x-systemd.mount-timeout=10" "timeo=14" "x-systemd.idle-timeout=600"];
-  };
-
   # Setup auto-cpufreq
   programs.auto-cpufreq = {
     enable = true;
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
index 6cd5432..dcdbcc6 100644
--- a/modules/nixos/default.nix
+++ b/modules/nixos/default.nix
@@ -11,6 +11,7 @@
     ./ryzenadj.nix
     ./qemu.nix
     ./amdgpu.nix
+    ./nfs-share.nix
   ];
 
   crony.bluetooth.enable = lib.mkDefault true;
@@ -24,4 +25,5 @@
   crony.ryzenadj.enable = lib.mkDefault true;
   crony.qemu.enable = lib.mkDefault true;
   crony.amdgpu.enable = lib.mkDefault true;
+  crony.nfs-share.enable = lib.mkDefault true;
 }
diff --git a/modules/nixos/nfs-share.nix b/modules/nixos/nfs-share.nix
new file mode 100644
index 0000000..492d322
--- /dev/null
+++ b/modules/nixos/nfs-share.nix
@@ -0,0 +1,18 @@
+{
+  config,
+  lib,
+  ...
+}: {
+  options = {
+    crony.nfs-share.enable = lib.mkEnableOption "Setup personal nfs share mount.";
+  };
+
+  config = lib.mkIf config.crony.nfs-share.enable {
+    # Nfs share
+    fileSystems."/mnt/share" = {
+      device = "192.168.0.4:/mnt/nfs";
+      fsType = "nfs";
+      options = ["_netdev" "noauto" "x-systemd.automount" "x-systemd.mount-timeout=10" "timeo=14" "x-systemd.idle-timeout=600"];
+    };
+  };
+}