tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
ibm-plex: 6.4.0 -> 1.1.0
Ryan Cao
1 year ago
18ad5961
2ee99e74
+88
-10
4 changed files
expand all
collapse all
unified
split
pkgs
by-name
ib
ibm-plex
hashes.nix
package.nix
update.sh
version.nix
+15
pkgs/by-name/ib/ibm-plex/hashes.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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 }:
0
0
0
0
0
0
0
0
2
3
-
stdenvNoCC.mkDerivation rec {
0
0
0
0
0
0
4
pname = "ibm-plex";
5
-
version = "6.4.0";
6
7
-
src = fetchzip {
8
-
url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
9
-
hash = "sha256-/aR3bu03VxenSPed6EqrGoPjWCcKT//MVtb9OC8tSRs=";
10
-
};
0
0
0
0
0
0
11
12
installPhase = ''
13
runHook preInstall
14
-
15
-
install -Dm644 */*.otf IBM-Plex-Sans-JP/unhinted/* -t $out/share/fonts/opentype
16
-
17
runHook postInstall
18
'';
0
0
19
20
meta = with lib; {
21
description = "IBM Plex Typeface";
···
1
+
{
2
+
lib,
3
+
stdenvNoCC,
4
+
fetchzip,
5
+
families ? [ ],
6
+
}:
7
+
let
8
+
version = import ./version.nix;
9
+
availableFamilies = import ./hashes.nix;
10
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 {
18
pname = "ibm-plex";
19
+
inherit version;
20
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 = ".";
31
32
installPhase = ''
33
runHook preInstall
34
+
find $srcs -type f -name '*.otf' -exec install -Dm644 {} -t $out/share/fonts/opentype \;
0
0
35
runHook postInstall
36
'';
37
+
38
+
passthru.updateScript = ./update.sh;
39
40
meta = with lib; {
41
description = "IBM Plex Typeface";
+42
pkgs/by-name/ib/ibm-plex/update.sh
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
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
···
0
···
1
+
"1.1.0"