54 lines
1.6 KiB
Bash
54 lines
1.6 KiB
Bash
|
|
#!/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"
|