tall, condensed bitmap font for geeks
at master 2.0 kB view raw
1{ 2 description = "Scientifica: tall and condensed bitmap font for geeks"; 3 4 inputs = { 5 6 nixpkgs.url = "github:NixOS/nixpkgs/nixos-21.05"; 7 8 bitsnpicas-src = { 9 url = "github:kreativekorp/bitsnpicas"; 10 flake = false; 11 }; 12 13 }; 14 15 outputs = 16 { self 17 , nixpkgs 18 , bitsnpicas-src 19 , ... 20 }: 21 let 22 supportedSystems = [ "x86_64-linux" "x86_64-darwin" ]; 23 forAllSystems = nixpkgs.lib.genAttrs supportedSystems; 24 25 nixpkgsFor = forAllSystems (system: 26 import nixpkgs { 27 inherit system; 28 overlays = [ self.overlay ]; 29 }); 30 in 31 { 32 33 overlay = final: prev: rec { 34 35 bitsnpicas = with final; pkgs.writeScriptBin "bitsnpicas" '' 36 ${jdk}/bin/java -jar ${bitsnpicas-src}/downloads/BitsNPicas.jar "$@" 37 ''; 38 39 scientifica = with final; pkgs.stdenvNoCC.mkDerivation { 40 pname = "scientifica"; 41 version = "v2.3"; 42 src = ./src; 43 44 buildPhase = '' 45 runHook preBuild 46 47 ff_filter() { 48 ${pkgs.fontforge}/bin/fontforge -c 'open(argv[1]).generate(argv[2])' "$@" 49 } 50 51 ttf_filter() { 52 ${pkgs.bitsnpicas}/bin/bitsnpicas convertbitmap -f ttf -o "$2" "$1" 53 } 54 55 mkdir -p $out/{ttf,otb,bdf} 56 57 pushd $src 58 59 # generate font files 60 for i in *; do 61 local file_name 62 file_name="''${i%.*}" 63 ttf_filter "$i" "$out/ttf/$file_name.ttf" 64 ff_filter "$i" "$out/otb/$file_name.otb" 65 ff_filter "$i" "$out/bdf/$file_name.bdf" 66 done 67 68 popd 69 70 runHook postBuild 71 ''; 72 73 installPhase = '' 74 true 75 ''; 76 77 }; 78 79 }; 80 81 packages = forAllSystems (system: { 82 inherit (nixpkgsFor."${system}") scientifica bitsnpicas; 83 }); 84 85 defaultPackage = forAllSystems (system: self.packages."${system}".scientifica); 86 87 }; 88}