nixpkgs/pkgs/by-name/sh/shanggu-fonts/package.nix
2024-04-11 11:03:02 +08:00

71 lines
1.7 KiB
Nix

{
lib,
stdenvNoCC,
fetchurl,
p7zip,
}:
let
version = "1.020";
source =
with lib.attrsets;
mapAttrs'
(
name: hash:
nameValuePair (lib.strings.toLower name) (fetchurl {
url = "https://github.com/GuiWonder/Shanggu/releases/download/${version}/Shanggu${name}TTCs.7z";
inherit hash;
})
)
{
Mono = "sha256-PcP4zJk8pptuX9tchr4qOorqAvj8YMRBcVrtCbp/1Zo=";
Round = "sha256-3wqMdnpdn4xpw7wO+QmIpl5/vZjQGgcfTMdtewK28B8=";
Sans = "sha256-isRqIVcH24knPqPI+a+9CpxEKd+PG642giUS9+VbC60=";
Serif = "sha256-k0I0NXStE1hcdOaOykuESy6sYqBHHaMaDxxr3tJUSYU=";
};
in
stdenvNoCC.mkDerivation {
pname = "shanggu-fonts";
inherit version;
outputs = [ "out" ] ++ builtins.attrNames source;
nativeBuildInputs = [ p7zip ];
unpackPhase = ''
runHook preUnpack
'' + lib.strings.concatLines (
lib.attrsets.mapAttrsToList (name: value: ''
7z x ${value} -o${name}
'') source
) + ''
runHook postUnpack
'';
installPhase =
''
runHook preInstall
mkdir -p $out/share/fonts/truetype
''
+ lib.strings.concatLines (
lib.lists.forEach (builtins.attrNames source) (
name: (''
install -Dm444 ${name}/*.ttc -t $'' + name + ''/share/fonts/truetype
ln -s $'' + name + ''/share/fonts/truetype/*.ttc $out/share/fonts/truetype
''
)
)
) + ''
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/GuiWonder/Shanggu";
description = "Heritage glyph (old glyph) font based on Siyuan";
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ Cryolitia ];
};
}