| final: prev: let |
| lib = prev.lib; |
| fonts = ["roboto-mono"]; |
| ligaturizer = prev.fetchFromGitHub { |
| owner = "ToxicFrog"; |
| repo = "Ligaturizer"; |
| rev = "v5"; |
| sha256 = "sha256-sFzoUvA4DB9CVonW/OZWWpwP0R4So6YlAQeqe7HLq50="; |
| fetchSubmodules = true; |
| }; |
| in |
| lib.pipe fonts [ |
| (builtins.map (name: { |
| inherit name; |
| value = prev.${name}; |
| })) |
| builtins.listToAttrs |
| (builtins.mapAttrs (name: value: |
| value.overrideAttrs ( |
| prevAttrs: { |
| outputHash = null; |
| outputHashMode = null; |
| outputHashAlgo = null; |
| nativeBuildInputs = (prevAttrs.nativeBuildInputs or []) ++ [prev.fontforge]; |
| postFixup = |
| (prevAttrs.postFixup or "") |
| + '' |
| pushd ${ligaturizer} |
| mkdir -p $out/share/fonts/truetype |
| mkdir -p $out/share/fonts/opentype |
| find $out/share/fonts/truetype \ |
| -name "*.ttf" \ |
| -exec fontforge \ |
| -lang py \ |
| -script ligaturize.py {} \ |
| --output-dir=$out/share/fonts/truetype \; |
| find $out/share/fonts/opentype \ |
| -name "*.otf" \ |
| -exec fontforge \ |
| -lang py \ |
| -script ligaturize.py {} \ |
| --output-dir=$out/share/fonts/opentype \; |
| popd |
| ''; |
| } |
| ))) |
| ] |