@@ -23,11 +23,11 @@ jobs:
23
23
- name : Check out repository
24
24
uses : actions/checkout@v4
25
25
26
- - name : Set up Xvfb & draw.io desktop
26
+ - name : Set up xmlstarlet, Xvfb & draw.io desktop
27
27
run : |
28
28
wget -q https://github.com/jgraph/drawio-desktop/releases/download/v${{ env.DRAWIO_VERSION }}/drawio-amd64-${{ env.DRAWIO_VERSION }}.deb
29
29
sudo apt-get update
30
- sudo apt-get install --yes --no-install-recommends xvfb ./drawio-amd64-${{ env.DRAWIO_VERSION }}.deb
30
+ sudo apt-get install --yes --no-install-recommends xmlstarlet xvfb ./drawio-amd64-${{ env.DRAWIO_VERSION }}.deb
31
31
32
32
- name : Prepare output folder
33
33
run : |
@@ -40,15 +40,22 @@ jobs:
40
40
export DISPLAY=:42
41
41
Xvfb :42 -nolisten unix &
42
42
43
- for ext in png svg; do
44
- # The chromium args need to be specified last because of whatever
45
- drawio --export --recursive --format $ext "${{ env.DRAWIO_SRC }}" --no-sandbox --disable-gpu --disable-dev-shm-usage
43
+ while read -r file; do
44
+ page=0
46
45
47
- rsync -v --recursive --include="*.$ext" --filter="-! */" "${{ env.DRAWIO_SRC }}"/* "${{ env.DRAWIO_OUT }}"
46
+ while read -r pagename; do
47
+ for ext in png svg; do
48
+ # The chromium args need to be specified last because of whatever
49
+ drawio --export -p $page -o "${file/.drawio/-$pagename}.$ext" "$file" --no-sandbox --disable-gpu --disable-dev-shm-usage
50
+ done
48
51
49
- # Nuke the exported files so that draw.io desktop doesn't attempt to use them as input files on the next loop pass
50
- find "${{ env.DRAWIO_SRC }}" -name "*.$ext" -exec rm -v "{}" \;
51
- done
52
+ page=$((page + 1))
53
+
54
+ # For whatever reason xmlstarlet doesn't end its output with a newline so we append one with echo to not lose the last line
55
+ done < <(xml sel -t -v "//diagram/@name" "$file"; echo)
56
+ done < <(find "${{ env.DRAWIO_SRC }}" -name "*.drawio")
57
+
58
+ rsync -v --recursive --include="*.png" --include="*.svg" --filter="-! */" "${{ env.DRAWIO_SRC }}"/* "${{ env.DRAWIO_OUT }}"
52
59
53
60
- name : Add & Commit
54
61
uses : EndBug/add-and-commit@v9
0 commit comments