From 0305b8d33a31fb42a7dc21efcd9416a6b9a74203 Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Tue, 10 Jun 2025 03:23:30 +0200 Subject: [PATCH] Moved to bind mounts --- modules/nixos/domain.nix | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/modules/nixos/domain.nix b/modules/nixos/domain.nix index 1667dcd..e3f97f9 100644 --- a/modules/nixos/domain.nix +++ b/modules/nixos/domain.nix @@ -146,17 +146,29 @@ in modules.profiles.base.enable = true; # Mount the directories from the network share - home.activation.dirMount = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - if ${pkgs.krb5}/bin/klist -s; then - echo "Kerberos ticket found, mounting home directory" - ln -s /network/$USER/Documents $HOME/Documents || true - ln -s /network/$USER/Music $HOME/Music || true - ln -s /network/$USER/Pictures $HOME/Pictures || true - ln -s /network/$USER/Video $HOME/Video || true - else - echo "No kerberos ticket found" - fi - ''; + home.activation.dirMount = + let + bindScript = dir: '' + mkdir -p /network/$USER/${dir} + ${pkgs.bindfs}/bin/bindfs /network/$USER/${dir} $HOME/${dir} + ''; + in + lib.hm.dag.entryAfter [ "writeBoundary" ] '' + if ! ${pkgs.krb5}/bin/klist -s; then + echo "No kerberos ticket found" + ${pkgs.krb5}/bin/kinit + fi + + if ${pkgs.krb5}/bin/klist -s; then + echo "Kerberos ticket found, mounting home directory" + ${bindScript "Documents"} + ${bindScript "Music"} + ${bindScript "Pictures"} + ${bindScript "Video"} + else + echo "Still no kerberos ticket found, skipping home directory mount" + fi + ''; } ) ] ++ config.home-manager.sharedModules;