Merge branch 'chore/task-to-convert-drawio-to-svg' into 'main'
Add bash script to mass-convert drawio files to svg See merge request cs108-fs26/Gruppe-13!5
This commit was merged in pull request #161.
This commit is contained in:
Vendored
+11
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Export drawio to SVG",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "./scripts/export-drawio.sh",
|
||||||
|
"problemMatcher": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Executable
+72
@@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check for draw.io installation
|
||||||
|
DRAWIO_PATH=""
|
||||||
|
check_drawio_installed() {
|
||||||
|
if command -v drawio &>/dev/null; then
|
||||||
|
DRAWIO_PATH=$(command -v drawio)
|
||||||
|
return 0 # drawio via PATH
|
||||||
|
elif [[ -x "/Applications/draw.io.app/Contents/MacOS/draw.io" ]]; then
|
||||||
|
DRAWIO_PATH="/Applications/draw.io.app/Contents/MacOS/draw.io"
|
||||||
|
return 0 # For macOS check at default path
|
||||||
|
else
|
||||||
|
return 1 # not found
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! check_drawio_installed; then
|
||||||
|
echo "Error: 'drawio' was not found. Make sure, that the draw.io cli is installed."
|
||||||
|
echo "https://www.diagrams.net/"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Draw.io installation found at: $DRAWIO_PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compare source (draw.io document) and exported file svg on mtime
|
||||||
|
needs_export() {
|
||||||
|
local drawio_file="$1"
|
||||||
|
local svg_file="$2"
|
||||||
|
|
||||||
|
# If no file found, export
|
||||||
|
if [[ ! -f "$svg_file" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$drawio_file" -nt "$svg_file" ]]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# If (re-)export is necessary export with drawio cli
|
||||||
|
export_file() {
|
||||||
|
local drawio_file="$1"
|
||||||
|
local svg_file="${drawio_file%.drawio}.svg"
|
||||||
|
|
||||||
|
if needs_export "$drawio_file" "$svg_file"; then
|
||||||
|
echo "↻ Exporting: $drawio_file"
|
||||||
|
echo "$svg_file"
|
||||||
|
echo "$drawio_file"
|
||||||
|
|
||||||
|
"$DRAWIO_PATH" --export --format svg --transparent --output "$svg_file" "$drawio_file"
|
||||||
|
else
|
||||||
|
echo "✓ Up-to-date: $drawio_file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Iterate over all .drawio files
|
||||||
|
main() {
|
||||||
|
# Source - https://stackoverflow.com/a/9612232
|
||||||
|
# Posted by Kevin, modified by community. See post 'Timeline' for change history
|
||||||
|
# Retrieved 2026-03-09, License - CC BY-SA 4.0
|
||||||
|
find . -name '*.drawio' -print0 |
|
||||||
|
while IFS= read -r -d '' line; do
|
||||||
|
export_file "$line"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "✓ Exported all files"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Start script at entry point
|
||||||
|
main
|
||||||
Reference in New Issue
Block a user