Files

54 lines
1.6 KiB
Bash
Raw Permalink Normal View History

#!/bin/sh
# preview.sh — wrapper hôte GrosseBertha · Chantier C2
# Usage : ./preview.sh <chemin/vers/deck.pptx> [dpi]
# Convertit le deck en PNG par slide via le conteneur sliding-preview.
# Sortie : <dossier du pptx>/<nom>_previews/ (slide-NN.png + index.html)
#
# Prérequis : image construite (cd docker/preview && docker build -t
# sliding-preview .) et droits docker pour l'utilisateur (voir notes C2).
#
# Env optionnels :
# FONTS_DIR — dossier des TTF PR (défaut ./assets/fonts s'il existe)
# DOCKER_BIN — binaire docker (défaut docker)
# PREVIEW_MEM — limite RAM du conteneur (défaut 1200m — DS218 2 Go)
PPTX="$1"
DPI="${2:-110}"
DOCKER_BIN="${DOCKER_BIN:-docker}"
PREVIEW_MEM="${PREVIEW_MEM:-1200m}"
# Docker exige root sur ce NAS : s'auto-élever si besoin (C2)
if [ "$(id -u)" -ne 0 ]; then
exec sudo "$0" "$@"
fi
if [ -z "$PPTX" ]; then
echo "usage: preview.sh <deck.pptx> [dpi]" >&2
exit 1
fi
if [ ! -f "$PPTX" ]; then
echo "preview: fichier introuvable: $PPTX" >&2
exit 1
fi
# Chemins absolus (le dossier du pptx est monté sur /work)
WORK=$(cd "$(dirname "$PPTX")" && pwd)
NAME=$(basename "$PPTX")
# Polices PR : défaut ./assets/fonts relatif au dossier de ce script
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
if [ -z "$FONTS_DIR" ] && [ -d "$SCRIPT_DIR/assets/fonts" ]; then
FONTS_DIR="$SCRIPT_DIR/assets/fonts"
fi
FONT_MOUNT=""
if [ -n "$FONTS_DIR" ] && [ -d "$FONTS_DIR" ]; then
FONT_MOUNT="-v $FONTS_DIR:/fonts:ro"
fi
exec "$DOCKER_BIN" run --rm \
--memory "$PREVIEW_MEM" --memory-swap "$PREVIEW_MEM" \
-v "$WORK:/work" \
$FONT_MOUNT \
sliding-preview "/work/$NAME" "$DPI"