{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; systems.url = "github:nix-systems/default"; }; outputs = { self, systems, nixpkgs, ... } @ inputs: let eachSystem = f: nixpkgs.lib.genAttrs (import systems) ( system: f nixpkgs.legacyPackages.${system} ); in { packages = eachSystem (pkgs: { default = pkgs.stdenvNoCC.mkDerivation rec { name = "resume-latex"; src = self; buildInputs = [ pkgs.coreutils pkgs.findutils pkgs.texlive.combined.scheme-full pkgs.noto-fonts-color-emoji pkgs.fontconfig pkgs.dejavu_fonts pkgs.gnugrep ]; FONTCONFIG_FILE = pkgs.makeFontsConf { fontDirectories = [ pkgs.noto-fonts-color-emoji pkgs.dejavu_fonts ]; }; buildPhase = '' export PATH="${pkgs.lib.makeBinPath buildInputs}" 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 env TEXMFHOME=.cache TEXMFVAR=.cache/texmf-var \ 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 ''; installPhase = '' mkdir -p $out cp *.pdf $out/ ''; }; pdf = pkgs.runCommand "resume-pdf" {} '' mkdir -p $out/nix-support 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 ''; }); hydraJobs = let system = "x86_64-linux"; in { build = self.packages.${system}.default; pdf = self.packages.${system}.pdf; }; devShells = eachSystem (pkgs: { default = pkgs.mkShell { buildInputs = [ pkgs.texlive.combined.scheme-full pkgs.texlab pkgs.termpdfpy ]; }; }); }; }