100 lines
3 KiB
Nix
100 lines
3 KiB
Nix
{
|
|
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
|
|
];
|
|
};
|
|
});
|
|
};
|
|
}
|