# TeX compilation takes a lot of resources and can hang a system, only do about # 4 at a time pool tex_pool depth = 4 # uncomment restats when ninja stops segfaulting when you do so -.- (ninja; touch legs.yaml; ninja) # TODO: clean up the output directory by messing with this and configure.jq # hide all json/tex/etc in hidden files? rule template2tex description = convert $in to $out using $template as a template command = gomplate --left-delim '«' --right-delim '»' -c .=$in < $template > $out rule cuegen description = run cue on $in to produce $out command = cue export $in > $out rule extract description = extract $target from $in via jq filter $filter command = touch $out && jq -c $filter < $in | bash $base/update.sh $target restat = 1 rule tex2pdf description = render tex from $in to $out command = $ xelatex $ -interaction=batchmode $ -halt-on-error $ --shell-escape $ --output-directory=$$(dirname $out) $in >/dev/null pool = tex_pool rule tex2pdf2x description = render tex from $in to $out twice (for toc) command = $ xelatex $ -interaction=batchmode $ -halt-on-error $ --shell-escape $ --output-directory=$$(dirname $out) $in >/dev/null $ || xelatex $ -interaction=batchmode $ -halt-on-error $ --shell-escape $ --output-directory=$$(dirname $out) $in >/dev/null pool = tex_pool rule scantex description = scan tex $in for dependencies command = bash $base/scantex.sh $in $target > $out rule pdf2png description = convert pdf $in to png $out with size $w by $h command = pdftoppm -scale-to-x $w -scale-to-y $h -png $in > $out rule convert description = run ImageMagick convert on $in with args $args to $out command = magick $in $args $out rule copy description = copy $in to $out command = cp $in $out rule pdfunite description = unite pdfs to create $out command = $ pdfunite $in $out $ && pdfjam --nup 3x3 $out $ --no-landscape --delta '0.5cm 0.5cm' --scale 0.9 $ -o $$(dirname $out)/$$(basename -s .pdf $out)-mini.pdf >/dev/null 2>&1 rule pngunite description = unite pngs to create a mosaic command = magick montage -mode concatenate $in $out