diff --git a/nixos.nix b/nixos.nix index 800c81e..1a6098e 100644 --- a/nixos.nix +++ b/nixos.nix @@ -25,26 +25,34 @@ let getsubname = userid: appid: "u${toString userid}_a${toString appid}"; getsubhome = userid: appid: "${cfg.stateDir}/u${toString userid}/a${toString appid}"; - mountpoints = { - ${cfg.sharefs.name} = mkIf (cfg.sharefs.source != null) { - depends = [ cfg.sharefs.source ]; - device = "sharefs"; - fsType = "fuse.sharefs"; - noCheck = true; - options = [ - "rw" - "noexec" - "nosuid" - "nodev" - "noatime" - "allow_other" - "mkdir" - "source=${cfg.sharefs.source}" - "setuid=${toString config.users.users.${cfg.sharefs.user}.uid}" - "setgid=${toString config.users.groups.${cfg.sharefs.group}.gid}" - ]; + mountpoints = + let + after = "sys-module-fuse.device"; + before = "nix-daemon.socket"; + in + { + ${cfg.sharefs.name} = mkIf (cfg.sharefs.source != null) { + device = "sharefs"; + fsType = "fuse.sharefs"; + options = [ + "rw" + "noexec" + "nosuid" + "nodev" + "noatime" + "allow_other" + "mkdir" + "source=${cfg.sharefs.source}" + "setuid=${toString config.users.users.${cfg.sharefs.user}.uid}" + "setgid=${toString config.users.groups.${cfg.sharefs.group}.gid}" + + "x-systemd.requires=${after}" + "x-systemd.before=${before}" + "x-systemd.required-by=${before}" + "x-systemd.requires-mounts-for=${cfg.sharefs.source}" + ]; + }; }; - }; in {