#!/usr/bin/env bash # puml2svg.sh — Convert all .puml files under skills/ to SVG # Usage: # bash scripts/puml2svg.sh # convert all # bash scripts/puml2svg.sh commit-message deep-dive # convert specific skills set -uo pipefail PLANTUML_JAR="${PLANTUML_JAR:-/home/xrv/.vscode-server/extensions/jebbs.plantuml-2.18.1/plantuml.jar}" SKILLS_DIR="$(cd "$(dirname "$0")/../skills" && pwd)" if [[ ! -f "$PLANTUML_JAR" ]]; then echo "ERROR: plantuml.jar not found at $PLANTUML_JAR" echo "Set PLANTUML_JAR=/path/to/plantuml.jar and retry." exit 1 fi # Build list of target skill dirs if [[ $# -gt 0 ]]; then targets=("$@") else targets=() for d in "$SKILLS_DIR"/*/; do targets+=("$(basename "$d")") done fi converted=0 for skill in "${targets[@]}"; do assets_dir="$SKILLS_DIR/$skill/assets" mapfile -t puml_files < <(find "$assets_dir" -name "*.puml" 2>/dev/null) for puml in "${puml_files[@]}"; do echo " → $puml" java -jar "$PLANTUML_JAR" -tsvg "$puml" 2>&1 ((converted++)) || true done done echo "Done. $converted file(s) converted."