1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-09-21 13:57:31 +02:00

darwin: fonts: speed up font installation

* Skip font installation if the derivation hasn't changed.
* Use `rsync` instead of `install` to copy font files, to avoid useless
  copying of pre-existent identical files.
This commit is contained in:
Albert Peschar 2024-02-19 00:09:58 +02:00 committed by Mikilio
parent aedeb6ec59
commit 6ade7aed90
No known key found for this signature in database
GPG key ID: 5B2F1A890CF33F3F

View file

@ -10,20 +10,17 @@ let
pathsToLink = "/share/fonts"; pathsToLink = "/share/fonts";
}; };
fonts = "${fontsEnv}/share/fonts"; fonts = "${fontsEnv}/share/fonts";
installDir = "${homeDir}/Library/Fonts/HomeManager";
in { in {
# macOS won't recognize symlinked fonts # macOS won't recognize symlinked fonts
config = mkIf pkgs.stdenv.hostPlatform.isDarwin { config = mkIf pkgs.stdenv.hostPlatform.isDarwin {
home.activation.copyFonts = hm.dag.entryAfter [ "writeBoundary" ] '' home.file."Library/Fonts/.home-manager-fonts-version" = {
copyFonts() { text = "${fontsEnv}";
rm -rf ${homeDir}/Library/Fonts/HomeManager || : onChange = ''
run mkdir -p ${escapeShellArg installDir}
local f run ${pkgs.rsync}/bin/rsync $VERBOSE_ARG -acL --chmod=u+w --delete \
find -L "${fonts}" -type f -printf '%P\0' | while IFS= read -rd "" f; do ${escapeShellArgs [ "${fonts}/" installDir ]}
run install $VERBOSE_ARG -Dm644 -T \ '';
"${fonts}/$f" "${homeDir}/Library/Fonts/HomeManager/$f" };
done
}
copyFonts
'';
}; };
} }