flake-fonts/fetchfont.nix

53 lines
1.3 KiB
Nix
Raw Normal View History

2023-06-17 00:20:53 +02:00
# vim: set noet sw=2 ts=2 sts=2:
{lib, pkgs, ...}:
({src ? null , srcs ? null, name ? "", pname ? "", version ? ""}:
2023-06-20 23:35:28 +02:00
with pkgs;
let
2024-08-23 19:02:34 +02:00
escapeShellArg = lib.strings.escapeShellArg;
2023-06-20 23:35:28 +02:00
name_ =
if "" != name
then name
else "${pname}-v${version}";
in stdenv.mkDerivation ({
name = name_;
nativeBuildInputs = [ sfnt2woff-zopfli unzip coreutils fontconfig woff2 ];
unpackPhase = ''
source_dir="$TMPDIR/src"
mkdir "$source_dir"
cd "$source_dir"
for s in $src $srcs
do
case "$s" in
*.zip|*.tar|*.tar.gz|*.tgz|*.tar.xz|*.txz|*.tar.bz2|*.tbz2)
unpackFile "$s"
;;
*)
cp -pr --reflink=auto -- "$s" "$(stripHash "$s")"
;;
esac
done
2024-08-23 19:02:34 +02:00
>"Makefile" echo ${escapeShellArg (builtins.readFile ./Makefile)}
>"fc.format" echo ${escapeShellArg (builtins.readFile ./fc.format)}
2023-06-20 23:35:28 +02:00
'';
buildPhase = ''
set -e
build_dir="$TMPDIR/build"
mkdir "$build_dir"
2024-08-23 19:02:34 +02:00
find "$source_dir" \( -name Makefile -or -name fc.format -or -name \*.otf -or -name \*.ttf -or -name \*.woff -or -name \*.woff2 \) -exec cp \{\} "$build_dir" \;
2023-06-20 23:35:28 +02:00
cd "$build_dir"
2024-08-23 19:02:34 +02:00
for f in *.ttf
2023-06-20 23:35:28 +02:00
do
2024-08-23 19:02:34 +02:00
[ -f "''${f%.ttf}.otf" ] || mv "$f" "''${f%.ttf}.otf"
2023-06-20 23:35:28 +02:00
done
2024-08-23 19:02:34 +02:00
make -j all
'';
2023-06-20 23:35:28 +02:00
installPhase = ''
2025-01-17 22:00:37 +01:00
make -j install D=$out name=${name_} S=$source_dir
2023-06-20 23:35:28 +02:00
'';
} // (
if null != src
then { src = src; }
else { srcs = srcs; }
))
)