ibm-plex: 6.4.0 -> 1.1.0

+88 -10
+15
pkgs/by-name/ib/ibm-plex/hashes.nix
··· 1 + { 2 + "serif" = "sha256-8ygaAeMKygYS4GCub4YUQmkh87pYHfi3s0PQ6AbaeGw="; 3 + "sans" = "sha256-mK+8GGl2ugF2+fS6yd3p5NWPHHcKEJWiShDS3lihOlI="; 4 + "sans-condensed" = "sha256-/aJTXmrHuoPSrtCKNodBY7I0CriayNTx5LCXw+/MFvE="; 5 + "sans-arabic" = "sha256-qi4k7kMLftIuq87idyxq46FOD6QYycdG6j3zJmu8mhI="; 6 + "sans-devanagari" = "sha256-K57OVqcH5r9tZx8NFEoz1P3xpUooqpF7xxJzNmnObwE="; 7 + "sans-thai" = "sha256-JZVbvZdj+IfBthiqivOXHrvAUe392M9ECGsiJkm0saE="; 8 + "sans-thai-looped" = "sha256-cry/Ctwt1bsrdbvWkJIYWLjsvV6a1lLFsT85znqERnw="; 9 + "sans-tc" = "sha256-kZvzSK6fEjfVMR4kxC4lxtD7GskqvJZx8BBJVT4T9MU="; 10 + "sans-kr" = "sha256-FsHxMvLlI4yylgG96DOZIdW2DYpk7I+c5QgkVIkNZIE="; 11 + "sans-jp" = "sha256-hUl/SSkN6q3pDTtrY2mJepw3ljhhLJskGbxfsTl9TuI="; 12 + "sans-hebrew" = "sha256-rTuBQYLI+6gEFTumCdaWpeoLzRoyFSmqWbXziq+UG6I="; 13 + "mono" = "sha256-OwUmrPfEehLDz0fl2ChYLK8FQM2p0G1+EMrGsYEq+6g="; 14 + "math" = "sha256-dJA6uqxa/yb3eLY4l39NeP0yIl2NfrbaRpf6h0/F7Xc="; 15 + }
+30 -10
pkgs/by-name/ib/ibm-plex/package.nix
··· 1 - { lib, stdenvNoCC, fetchzip }: 1 + { 2 + lib, 3 + stdenvNoCC, 4 + fetchzip, 5 + families ? [ ], 6 + }: 7 + let 8 + version = import ./version.nix; 9 + availableFamilies = import ./hashes.nix; 2 10 3 - stdenvNoCC.mkDerivation rec { 11 + availableFamilyNames = builtins.attrNames availableFamilies; 12 + selectedFamilies = if (families == [ ]) then availableFamilyNames else families; 13 + 14 + unknownFamilies = lib.subtractLists availableFamilyNames families; 15 + in 16 + assert lib.assertMsg (unknownFamilies == [ ]) "Unknown font(s): ${toString unknownFamilies}"; 17 + stdenvNoCC.mkDerivation { 4 18 pname = "ibm-plex"; 5 - version = "6.4.0"; 19 + inherit version; 6 20 7 - src = fetchzip { 8 - url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip"; 9 - hash = "sha256-/aR3bu03VxenSPed6EqrGoPjWCcKT//MVtb9OC8tSRs="; 10 - }; 21 + srcs = builtins.map ( 22 + family: 23 + fetchzip { 24 + url = "https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-${family}%40${version}/ibm-plex-${family}.zip"; 25 + hash = availableFamilies.${family}; 26 + } 27 + ) selectedFamilies; 28 + 29 + dontUnpack = true; 30 + sourceRoot = "."; 11 31 12 32 installPhase = '' 13 33 runHook preInstall 14 - 15 - install -Dm644 */*.otf IBM-Plex-Sans-JP/unhinted/* -t $out/share/fonts/opentype 16 - 34 + find $srcs -type f -name '*.otf' -exec install -Dm644 {} -t $out/share/fonts/opentype \; 17 35 runHook postInstall 18 36 ''; 37 + 38 + passthru.updateScript = ./update.sh; 19 39 20 40 meta = with lib; { 21 41 description = "IBM Plex Typeface";
+42
pkgs/by-name/ib/ibm-plex/update.sh
··· 1 + #! /usr/bin/env nix-shell 2 + #! nix-shell -i bash -p nix nix-prefetch jq 3 + # shellcheck shell=bash 4 + set -eo pipefail 5 + 6 + families=( 7 + "serif" 8 + "sans" 9 + "sans-condensed" 10 + "sans-arabic" 11 + "sans-devanagari" 12 + "sans-thai" 13 + "sans-thai-looped" 14 + "sans-tc" 15 + "sans-kr" 16 + "sans-jp" 17 + "sans-hebrew" 18 + "mono" 19 + "math" 20 + ) 21 + 22 + version=$(curl --silent 'https://api.github.com/repos/IBM/plex/releases/latest' | jq -r '.tag_name | sub("^@ibm/[\\w-]+@"; "")') 23 + 24 + dirname="$(dirname "$0")" 25 + echo \""${version}"\" >"$dirname/version-new.nix" 26 + if diff -q "$dirname/version-new.nix" "$dirname/version.nix"; then 27 + echo No new version available, current: "$version" 28 + rm "$dirname/version-new.nix" 29 + exit 0 30 + else 31 + echo Updated to version "$version" 32 + mv "$dirname/version-new.nix" "$dirname/version.nix" 33 + fi 34 + 35 + printf '{\n' > "$dirname/hashes.nix" 36 + 37 + for family in "${families[@]}"; do 38 + url="https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-${family}%40${version}/ibm-plex-${family}.zip" 39 + printf ' "%s" = "%s";\n' "$family" "$(nix-prefetch-url --unpack "$url" | xargs nix hash convert --hash-algo sha256)" >>"$dirname/hashes.nix" 40 + done 41 + 42 + printf '}\n' >> "$dirname/hashes.nix"
+1
pkgs/by-name/ib/ibm-plex/version.nix
··· 1 + "1.1.0"