Academic-cv/flake.nix

79 lines
2.2 KiB
Nix

{
description = "Build LaTeX Academic CV - Matt Morin";
inputs = {
nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
flake-utils.url = github:numtide/flake-utils;
};
outputs = { self, nixpkgs, flake-utils }:
with flake-utils.lib; eachSystem allSystems (system:
let
pkgs = nixpkgs.legacyPackages.${system};
tex = pkgs.texlive.combine {
inherit (pkgs.texlive)
scheme-basic
latexmk
fontawesome5
accsupp
geometry
extsizes
etoolbox
pdfx
xcolor
# xparse
# scrlfile
tikzpagenodes
hyperref
# arrows
fontspec
cmap
# inputenc
# fontenc
# tikz
tcolorbox
enumitem
# graphicx
# trimclip
dashrule
multirow
# tabularx
changepage
# pgffor
;
};
vars = ["sender" "receiver"];
texvars = toString
(pkgs.lib.imap1 (i: n: ''\def\${n}{${"$" + (toString i)}}'') vars);
in rec {
packages = {
document = pkgs.stdenvNoCC.mkDerivation rec {
name = "matt_morin_cv";
src = self;
propagatedBuildInputs = [ pkgs.coreutils tex ];
phases = ["unpackPhase" "buildPhase" "installPhase"];
buildPhase = ''
export PATH="${pkgs.lib.makeBinPath propagatedBuildInputs }";
DIR=$(mktemp -d)
mkdir -p "$DIR/.texcache/texmf-var"
env TEXMFHOME="$DIR/.cache" \
TEXMFVAR="$DIR/.cache/texmf-var" \
OSFONTDIR=${pkgs.font-awesome_5}/share/fonts \
latexmk -interaction=nonstopmode -pdf -lualatex \
-output-directory="$DIR" \
-pretex="\pdfvariable suppressoptionalinfo 512\relax" \
**matt_morin_cv.tex # source
cp "$DIR/matt_morin_cv.pdf" matt_morin_cv.pdf # from /build/tmp... to pwd
cp "$DIR/matt_morin_cv.log" matt_morin_cv.log # Copy the log file
rm -rf "$DIR"
'';
installPhase = ''
mkdir -p $out/{bin,share}
cp document.tex $out/share/document.tex
cp matt_morin_cv $out/bin/matt_morin_cv
chmod u+x $out/bin/matt_morin_cv
'';
};
};
defaultPackage = packages.document;
});
}