Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 58 lines 1.5 kB view raw
1{ 2 runCommand, 3 stdenv, 4 lib, 5 libxslt, 6 fontconfig, 7 dejavu_fonts, 8}: 9 10let 11 fontconfig_ = fontconfig; 12in 13{ 14 fontconfig ? fontconfig_, 15 # an array of fonts, e.g. `[ pkgs.dejavu_fonts.minimal ]` 16 fontDirectories, 17 impureFontDirectories ? [ 18 # nix user profile 19 "~/.nix-profile/lib/X11/fonts" 20 "~/.nix-profile/share/fonts" 21 ] 22 ++ lib.optional stdenv.hostPlatform.isDarwin "~/Library/Fonts" 23 ++ [ 24 # FHS paths for non-NixOS platforms 25 "/usr/share/fonts" 26 "/usr/local/share/fonts" 27 ] 28 # darwin paths 29 ++ lib.optionals stdenv.hostPlatform.isDarwin [ 30 "/Library/Fonts" 31 "/System/Library/Fonts" 32 ] 33 # nix default profile 34 ++ [ 35 "/nix/var/nix/profiles/default/lib/X11/fonts" 36 "/nix/var/nix/profiles/default/share/fonts" 37 ], 38 39 # to include custom config 40 includes ? [ "/etc/fonts/conf.d" ], 41}: 42 43runCommand "fonts.conf" 44 { 45 nativeBuildInputs = [ libxslt ]; 46 buildInputs = [ fontconfig ]; 47 inherit fontDirectories includes; 48 # Add a default font for non-nixos systems, <1MB and in nixos defaults. 49 impureFontDirectories = impureFontDirectories ++ [ dejavu_fonts.minimal ]; 50 } 51 '' 52 xsltproc --stringparam fontDirectories "$fontDirectories" \ 53 --stringparam impureFontDirectories "$impureFontDirectories" \ 54 --stringparam includes "$includes" \ 55 --path ${fontconfig.out}/share/xml/fontconfig \ 56 ${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \ 57 > $out 58 ''