resume/flake.nix

101 lines
3 KiB
Nix
Raw Normal View History

2024-05-05 22:04:20 -04:00
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
systems.url = "github:nix-systems/default";
};
outputs = {
2024-05-05 23:03:34 -04:00
self,
2024-05-05 22:04:20 -04:00
systems,
nixpkgs,
...
} @ inputs: let
eachSystem = f:
nixpkgs.lib.genAttrs (import systems) (
system:
f nixpkgs.legacyPackages.${system}
);
in {
2024-05-05 23:03:34 -04:00
packages = eachSystem (pkgs: {
default = pkgs.stdenvNoCC.mkDerivation rec {
name = "resume-latex";
src = self;
2024-10-25 05:58:52 +00:00
buildInputs = [
2024-05-05 23:03:34 -04:00
pkgs.coreutils
pkgs.findutils
2024-10-25 05:58:52 +00:00
pkgs.texlive.combined.scheme-full
2024-11-23 23:37:58 -05:00
pkgs.noto-fonts-color-emoji
pkgs.fontconfig
pkgs.dejavu_fonts
pkgs.gnugrep
2024-05-05 23:03:34 -04:00
];
2024-11-23 23:37:58 -05:00
FONTCONFIG_FILE = pkgs.makeFontsConf {
fontDirectories = [
pkgs.noto-fonts-color-emoji
pkgs.dejavu_fonts
];
};
2024-05-05 23:03:34 -04:00
buildPhase = ''
export PATH="${pkgs.lib.makeBinPath buildInputs}"
2024-11-23 23:37:58 -05:00
export XDG_CACHE_HOME="$PWD/.cache"
export FONTCONFIG_CACHE_DIR="$PWD/.cache/fontconfig"
mkdir -p .cache/texmf-var $FONTCONFIG_CACHE_DIR
# Rebuild font cache (redirect stderr to suppress font cache messages)
fc-cache -f -v 2>&1 | grep -v "caching" | grep -v "skipping" || true
# Run latexmk and filter out specific warnings
env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \
isZoey=1 latexmk -interaction=nonstopmode -f resume.tex 2>&1 \
| grep -v "Missing character" \
| grep -v "Font.*cache" \
| grep -v "fontconfig:" \
| grep -v "looped directory detected" \
|| [ $? -eq 1 ] # Allow latexmk to fail but still show output
mv resume.pdf ZoeyMyersResume.pdf
2024-05-05 23:03:34 -04:00
env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \
2024-11-23 23:37:58 -05:00
isZoey=0 latexmk -interaction=nonstopmode -f resume.tex 2>&1 \
| grep -v "Missing character" \
| grep -v "Font.*cache" \
| grep -v "fontconfig:" \
| grep -v "looped directory detected" \
|| [ $? -eq 1 ]
mv resume.pdf ZacharyMyersResume.pdf
2024-05-05 23:03:34 -04:00
'';
installPhase = ''
mkdir -p $out
2024-11-23 23:37:58 -05:00
cp *.pdf $out/
2024-05-05 23:03:34 -04:00
'';
};
2024-10-18 23:54:34 -04:00
pdf = pkgs.runCommand "resume-pdf" {} ''
mkdir -p $out/nix-support
2024-11-23 23:37:58 -05:00
cp ${self.packages.${pkgs.system}.default}/ZoeyMyersResume.pdf $out/
cp ${self.packages.${pkgs.system}.default}/ZacharyMyersResume.pdf $out/
echo "file pdf $out/ZoeyMyersResume.pdf" > $out/nix-support/hydra-build-products
echo "file pdf $out/ZacharyMyersResume.pdf" >> $out/nix-support/hydra-build-products
2024-10-18 23:54:34 -04:00
'';
2024-05-05 23:03:34 -04:00
});
2024-10-18 23:51:19 -04:00
hydraJobs = let
system = "x86_64-linux";
in {
build = self.packages.${system}.default;
2024-10-18 23:54:34 -04:00
pdf = self.packages.${system}.pdf;
2024-10-18 23:44:04 -04:00
};
2024-10-18 23:35:39 -04:00
2024-05-05 22:04:20 -04:00
devShells = eachSystem (pkgs: {
default = pkgs.mkShell {
2024-10-25 05:58:52 +00:00
buildInputs = [
2024-10-25 05:51:13 +00:00
pkgs.texlive.combined.scheme-full
2024-05-05 22:04:20 -04:00
pkgs.texlab
pkgs.termpdfpy
];
};
});
};
}