refactor: break out a helper in fs.nix for mounting remote home dirs

This commit is contained in:
Colin 2023-08-20 06:20:04 +00:00
parent c3bc0ec645
commit c2b85bd6b8

View File

@ -1,9 +1,10 @@
# docs
# - x-systemd options: <https://www.freedesktop.org/software/systemd/man/systemd.mount.html>
{ pkgs, sane-lib, ... }:
{ lib, pkgs, sane-lib, ... }:
let fsOpts = rec {
let
fsOpts = rec {
common = [
"_netdev"
"noatime"
@ -54,9 +55,19 @@ let fsOpts = rec {
"timeo=15"
"nofail" # don't fail remote-fs.target when this mount fails (not an option for sshfs else would be common)
];
};
};
remoteHome = host: {
fileSystems."/mnt/${host}-home" = {
device = "colin@${host}:/home/colin";
fsType = "fuse.sshfs";
options = fsOpts.sshColin ++ fsOpts.noauto;
noCheck = true;
};
sane.fs."/mnt/${host}-home" = sane-lib.fs.wantedDir;
};
in
{
lib.mkMerge [
{
# some services which use private directories error if the parent (/var/lib/private) isn't 700.
sane.fs."/var/lib/private".dir.acl.mode = "0700";
@ -108,22 +119,6 @@ in
# };
sane.fs."/mnt/servo-media" = sane-lib.fs.wantedSymlinkTo "/mnt/servo-nfs/media";
fileSystems."/mnt/desko-home" = {
device = "colin@desko:/home/colin";
fsType = "fuse.sshfs";
options = fsOpts.sshColin ++ fsOpts.noauto;
noCheck = true;
};
sane.fs."/mnt/desko-home" = sane-lib.fs.wantedDir;
fileSystems."/mnt/moby-home" = {
device = "colin@moby-hn:/home/colin";
fsType = "fuse.sshfs";
options = fsOpts.sshColin ++ fsOpts.noauto;
noCheck = true;
};
sane.fs."/mnt/moby-home" = sane-lib.fs.wantedDir;
environment.pathsToLink = [
# needed to achieve superuser access for user-mounted filesystems (see optionsRoot above)
# we can only link whole directories here, even though we're only interested in pkgs.openssh
@ -133,5 +128,9 @@ in
environment.systemPackages = [
pkgs.sshfs-fuse
];
}
}
(remoteHome "desko")
(remoteHome "moby")
]