build: add package for nix run

This commit is contained in:
Daylin Morgan 2024-01-30 20:33:49 -06:00
parent 569b5a3569
commit 67e41cd362
Signed by: daylin
GPG key ID: C1E52E7DD81DF79F
4 changed files with 46 additions and 7 deletions

1
.gitignore vendored
View file

@ -185,3 +185,4 @@ patched/*
nerd-fonts
.env
font-patcher-log.txt
result

View file

@ -83,6 +83,14 @@ make update-fonts
You can verify the fonts have been added with `make check`.
## with Nix
You can run using the included `flake.nix`.
```bash
nix run "github:daylinmorgan/monolisa-nerdfont-patch"
```
## Contributing
Before making changes to to any of the scripts in `bin` you should first install `pre-commit`.

View file

@ -12,6 +12,36 @@
["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"]
(system: f nixpkgs.legacyPackages.${system});
in {
packages = forAllSystems (
pkgs:
with pkgs; {
default = stdenv.mkDerivation {
name = "monolisa-nerdfont-patch";
src = ./.;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
fontforge
python3
];
unpackPhase = ":";
buildPhase = ":";
installPhase = ''
mkdir -p $out/bin
install -m755 -D ${./patch-monolisa} $out/bin/monolisa-nerdfont-patch
install -m755 -D ${./font-patcher} $out/bin/font-patcher
cp -r ${./bin} $out/bin/bin
cp -r ${./src} $out/bin/src
'';
postFixup = ''
wrapProgram $out/bin/monolisa-nerdfont-patch \
--set PATH ${lib.makeBinPath [
fontforge
]}
'';
};
}
);
devShells = forAllSystems (
pkgs:
with pkgs; {

View file

@ -10,8 +10,6 @@ import time
from pathlib import Path
from typing import List, Set
FONT_SRC = (Path(__file__).parent / "MonoLisa").absolute()
class Color:
def __init__(self):
@ -133,16 +131,16 @@ def patch_single_font(
font_path: Path, output_dir: Path, fp_args: str, verbose: bool
) -> None:
# update display name to full resolved path
rel_path = font_path.absolute().relative_to(FONT_SRC)
output_path = (output_dir / rel_path).parent
rel_path = font_path.absolute()
output_path = (output_dir / rel_path.parent.name).absolute()
output_path.mkdir(exist_ok=True, parents=True)
cmd = [
"fontforge",
"-script",
"./font-patcher",
f"{Path(__file__).parent}/font-patcher",
"--glyphdir",
"./src/glyphs/",
f"{Path(__file__).parent}/src/glyphs/",
"-out",
f"{output_path}",
f"{font_path.absolute()}",
@ -171,7 +169,9 @@ def collect_files_by_dir(fontfiles: List[Path]) -> Set[Path]:
def patch_font_dir_docker(
font_dir_path: Path, output_dir: Path, fp_args: str, verbose: bool
) -> None:
output_path = (output_dir / font_dir_path.relative_to(FONT_SRC)).absolute()
output_path = (
output_dir / font_dir_path.relative_to(font_dir_path.parent)
).absolute()
output_path.mkdir(exist_ok=True, parents=True)
cmd = [