SPB Git

Repository Public Research preview

build.sh 1.3 KB 35 lines shellscript

1#!/usr/bin/env bash2# Compile le gabarit de plan de cours (formulaire PDF remplissable).3#   ./build.sh                 -> vierge + IMM1003 + IMM1033 dans sortie/4#   ./build.sh IMM1003         -> un seul jeu de valeurs (valeurs_IMM1003.tex)5#   ./build.sh valeurs_X.tex   -> idem, chemin de fichier accepté6set -euo pipefail7cd "$(dirname "$0")"8mkdir -p sortie build910cibles=("$@")11[ ${#cibles[@]} -eq 0 ] && cibles=(vierge IMM1003 IMM1033)1213for c in "${cibles[@]}"; do14  c="${c##*/}"; c="${c%.tex}"; c="${c#valeurs_}"15  [ -f "valeurs_$c.tex" ] || { echo "!! valeurs_$c.tex introuvable"; exit 1; }16  job="plan_de_cours_$c"17  echo "==> $job"18  for pass in 1 2; do19    TEXINPUTS=".:" pdflatex -interaction=nonstopmode -halt-on-error \20      -output-directory=build -jobname="$job" \21      "\def\valeurs{valeurs_$c}\input{gabarit_plan_de_cours}" >/dev/null \22      || { grep -A5 '^!' "build/$job.log" | head -30; exit 1; }23  done24  cp "build/$job.pdf" "sortie/$job.pdf"25  python3 - "sortie/$job.pdf" <<'EOF'26import sys27from pypdf import PdfReader28r = PdfReader(sys.argv[1])29f = r.get_fields() or {}30rempli = sum(1 for v in f.values() if v.get("/V") not in (None, "", "/Off"))31print(f"    {len(r.pages)} pages, {len(f)} champs ({rempli} préremplis)")32EOF33done34echo "PDF dans $(pwd)/sortie/"35
Files main
Menu

Theme