cosmic-term: 1.0.0-alpha.3 -> 1.0.0-alpha.5.1 (#374031)
[NixPkgs.git] / pkgs / by-name / sh / shanggu-fonts / package.nix
blob8de63b3266e97432205e8317d3cfee5cb28ada40
2   lib,
3   stdenvNoCC,
4   fetchurl,
5   p7zip,
6 }:
7 let
8   version = "1.021";
10   source =
11     with lib.attrsets;
12     mapAttrs'
13       (
14         name: hash:
15         nameValuePair (lib.strings.toLower name) (fetchurl {
16           url = "https://github.com/GuiWonder/Shanggu/releases/download/${version}/Shanggu${name}TTCs.7z";
17           inherit hash;
18         })
19       )
20       {
21         Mono = "sha256-3WwknXSMH12Lu/HA/f647AyhDg2O9Eg5ZGDBrFp4SbE=";
22         Round = "sha256-vRL2YQkcp5vDSbLaMDEYd7HJVohZFYKlBfxAdY2l3mA=";
23         Sans = "sha256-x5z6GYsfQ+8a8W0djJTY8iutuLNYvaemIpdYh94krk0=";
24         Serif = "sha256-3WK7vty3zZFNKkwViEsozU3qa+5hymYwXk6ta9AxmNM=";
25       };
27   extraOutputs = builtins.attrNames source;
29 stdenvNoCC.mkDerivation {
30   pname = "shanggu-fonts";
31   inherit version;
33   outputs = [ "out" ] ++ extraOutputs;
35   nativeBuildInputs = [ p7zip ];
37   unpackPhase =
38     ''
39       runHook preUnpack
40     ''
41     + lib.strings.concatLines (
42       lib.attrsets.mapAttrsToList (name: value: ''
43         7z x ${value} -o${name}
44       '') source
45     )
46     + ''
47       runHook postUnpack
48     '';
50   installPhase =
51     ''
52       runHook preInstall
54       mkdir -p $out/share/fonts/truetype
55     ''
56     + lib.strings.concatLines (
57       lib.lists.forEach extraOutputs (name: ''
58         install -Dm444 ${name}/*.ttc -t ${placeholder name}/share/fonts/truetype
59         ln -s "${placeholder name}" /share/fonts/truetype/*.ttc $out/share/fonts/truetype
60       '')
61     )
62     + ''
63       runHook postInstall
64     '';
66   meta = with lib; {
67     homepage = "https://github.com/GuiWonder/Shanggu";
68     description = "Heritage glyph (old glyph) font based on Siyuan";
69     license = licenses.ofl;
70     platforms = platforms.all;
71     maintainers = with maintainers; [ Cryolitia ];
72   };