39 lines
901 B
Nix
39 lines
901 B
Nix
|
{
|
||
|
runCommand,
|
||
|
lib,
|
||
|
fontconfig,
|
||
|
fontDirectories,
|
||
|
}:
|
||
|
|
||
|
runCommand "fc-cache"
|
||
|
{
|
||
|
nativeBuildInputs = [ fontconfig.bin ];
|
||
|
preferLocalBuild = true;
|
||
|
allowSubstitutes = false;
|
||
|
passAsFile = [ "fontDirs" ];
|
||
|
fontDirs = ''
|
||
|
<!-- Font directories -->
|
||
|
${lib.concatStringsSep "\n" (map (font: "<dir>${font}</dir>") fontDirectories)}
|
||
|
'';
|
||
|
}
|
||
|
''
|
||
|
export FONTCONFIG_FILE=$(pwd)/fonts.conf
|
||
|
|
||
|
cat > fonts.conf << EOF
|
||
|
<?xml version='1.0'?>
|
||
|
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
|
||
|
<fontconfig>
|
||
|
<include>${fontconfig.out}/etc/fonts/fonts.conf</include>
|
||
|
<cachedir>$out</cachedir>
|
||
|
EOF
|
||
|
cat "$fontDirsPath" >> fonts.conf
|
||
|
echo "</fontconfig>" >> fonts.conf
|
||
|
|
||
|
mkdir -p $out
|
||
|
fc-cache -sv
|
||
|
|
||
|
# This is not a cache dir in the normal sense -- it won't be automatically
|
||
|
# recreated.
|
||
|
rm -f "$out/CACHEDIR.TAG"
|
||
|
''
|