Academic-cv/flake.nix

79 lines
2.0 KiB
Nix
Raw Normal View History

{
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
xparse
scrlfile
tikex
hyperref
arrows
inline
fontspec
cmap
inputenc
fontenc
tikz
tcolorbox
enumitem
graphicx
trimclip
dashrule
multirow
tabularx
changepage
afterpage
pgffor;
};
in rec {
packages = {
document = pkgs.stdenvNoCC.mkDerivation rec {
name = "cv-document";
src = self;
propagatedBuildInputs = [ pkgs.coreutils pkgs.fontawesome5 tex ];
phases = ["unpackPhase" "buildPhase" "installPhase"];
SCRIPT = ''
#!/bin/bash
prefix=${builtins.placeholder "out"}
export PATH="${pkgs.lib.makeBinPath propagatedBuildInputs}";
DIR=$(mktemp -d)
RES=$(pwd)/document.pdf
cd $prefix/share
mkdir -p "$DIR/.texcache/texmf-var"
env TEXMFHOME="$DIR/.cache" \
TEXMFVAR="$DIR/.cache/texmf-var" \
OSFONTDIR=${pkgs.fontawesome5}/share/fonts \
latexmk -interaction=nonstopmode -pdf -lualatex \
-output-directory="$DIR" \
-pretex="\pdfvariable suppressoptionalinfo 512\relax" \
cv.tex
mv "$DIR/document.pdf" $RES
rm -rf "$DIR"
'';
buildPhase = ''
printenv SCRIPT > cv-document
'';
installPhase = ''
mkdir -p $out/{bin,share}
cp cv.tex $out/share/cv.tex
cp cv-document $out/bin/build-cv
chmod +x $out/bin/build-cv
'';
};
};
defaultPackage = packages.document;
});
}