adding a nix flake for reproducible builds
This commit is contained in:
parent
45a161e6a1
commit
b18d617360
|
@ -13,3 +13,4 @@
|
|||
*.vrb
|
||||
*.aux
|
||||
*.xmpi
|
||||
*.lock
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
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;
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue