39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# Rasterize PlantUML sources in this directory to PNG (ОЗ.Р1 / отчёт).
|
||
# Requires one of: plantuml in PATH, or Java + plantuml.jar (see below).
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
cd "$SCRIPT_DIR"
|
||
|
||
# PNG рядом с исходником: oz-r1-foo.puml -> oz-r1-foo.png
|
||
OUT_OPTS=(-tpng)
|
||
|
||
run_plantuml() {
|
||
if command -v plantuml >/dev/null 2>&1; then
|
||
plantuml "${OUT_OPTS[@]}" "$@"
|
||
return 0
|
||
fi
|
||
|
||
local jar="${PLANTUML_JAR:-}"
|
||
if [[ -n "$jar" && -f "$jar" ]] && command -v java >/dev/null 2>&1; then
|
||
java -jar "$jar" "${OUT_OPTS[@]}" "$@"
|
||
return 0
|
||
fi
|
||
|
||
echo "plantuml не найден. Установите пакет (например plantuml) или задайте PLANTUML_JAR" >&2
|
||
echo " export PLANTUML_JAR=/path/to/plantuml.jar" >&2
|
||
echo "Скачать JAR: https://plantuml.com/download" >&2
|
||
return 127
|
||
}
|
||
|
||
shopt -s nullglob
|
||
sources=(*.puml)
|
||
if ((${#sources[@]} == 0)); then
|
||
echo "В $SCRIPT_DIR нет файлов *.puml" >&2
|
||
exit 0
|
||
fi
|
||
|
||
run_plantuml "${sources[@]}"
|
||
echo "Готово: PNG рядом с исходниками в $SCRIPT_DIR"
|