This directory contains a Nix flake that builds the LaTeX resume into a PDF and copies it to the portfolio site for easy publishing.
-
Build the PDF:
nix run- Runs a small shell app that invokes
pdflatexin a reproducibletexliveFullenvironment. - Moves outputs to
result/and copies the PDF to../portfolio/public/resume_alex_spaulding.pdf. - Opens the generated PDF (
openon macOS,xdg-openon Linux).
- Runs a small shell app that invokes
-
Dev shell:
nix develop- Drops you into a shell with
texliveFullavailable for ad‑hoc LaTeX work, e.g.:pdflatex -interaction=nonstopmode resume_alex_spaulding.tex.
- Drops you into a shell with
-
packages.resume-runner- Defined via
pkgs.writeShellApplicationwithruntimeInputs = [ pkgs.texliveFull ]. - Script builds the
.tex, stages artifacts intoresult/, and copies to the portfoliopublic/dir.
- Defined via
-
apps.default- Points to the
resume-runnerbinary, enablingnix runto build and open the PDF.
- Points to the
-
devShells.default- Provides
texliveFullin an interactive shell for editing and testing.
- Provides
-
flake.lock- Pins
nixpkgsfor reproducible builds across machines and CI.
- Pins
- Reproducibility:
flake.lockensures the sametexliveFulland tooling everywhere. - Single command UX:
nix runencapsulates build, staging, copy-to-portfolio, and open. - Clean DevOps: No global TeX installs; everything is pulled from
nixpkgson demand.
- This flake is part of my broader Nix and DevOps workflow.
- I’ve learned a lot about Nix language, flakes,
nixpkgs, and reproducible environments through my dotfiles and system setup work: https://github.com/aspauldingcode/.dotfiles - The pattern here (shell app +
apps.default+devShell) is a repeatable way to wrap build tools for other projects.
- Built PDF:
result/resume_alex_spaulding.pdf - Published copy (for the portfolio site):
../portfolio/public/resume_alex_spaulding.pdf