66 lines
1.3 KiB
Nix
66 lines
1.3 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.mounts;
|
|
in
|
|
{
|
|
options = {
|
|
mounts = {
|
|
enable = lib.mkEnableOption "Enable mounts in NixOS";
|
|
};
|
|
};
|
|
config = lib.mkIf cfg.enable {
|
|
environment.systemPackages = with pkgs; [
|
|
cifs-utils
|
|
nfs-utils
|
|
];
|
|
fileSystems = builtins.listToAttrs (
|
|
builtins.map
|
|
(mount: {
|
|
name = "/media/${mount.name}";
|
|
value = {
|
|
device = "media.home:/volume1/${mount.path}";
|
|
fsType = "nfs";
|
|
options = [
|
|
# "x-systemd.automount"
|
|
# "noauto"
|
|
"x-systemd.idle-timeout=600"
|
|
"rw"
|
|
];
|
|
};
|
|
})
|
|
[
|
|
{
|
|
name = "archive";
|
|
path = "documents/documents/archive";
|
|
}
|
|
{
|
|
name = "photos";
|
|
path = "photos";
|
|
}
|
|
{
|
|
name = "video";
|
|
path = "video";
|
|
}
|
|
{
|
|
name = "audio";
|
|
path = "audio";
|
|
}
|
|
{
|
|
name = "home";
|
|
path = "homes/ryan";
|
|
}
|
|
{
|
|
name = "fileshare";
|
|
path = "fileshare";
|
|
}
|
|
]
|
|
);
|
|
services.rpcbind.enable = true;
|
|
};
|
|
}
|