From 96f5745c1e03b6a7f54ffac5f7ec7392c872ccda Mon Sep 17 00:00:00 2001
From: Tim Jaacks <tim.jaacks@seco.com>
Date: Fri, 20 Oct 2023 14:38:14 +0200
Subject: [PATCH] Confluence: group download files by type

---
 confluence-page.xml.jinja2 | 117 +++++++++++++++++++++++++++++++++----
 1 file changed, 105 insertions(+), 12 deletions(-)

diff --git a/confluence-page.xml.jinja2 b/confluence-page.xml.jinja2
index 23274544..ea2c6586 100644
--- a/confluence-page.xml.jinja2
+++ b/confluence-page.xml.jinja2
@@ -54,17 +54,110 @@
     </ac:rich-text-body>
 </ac:structured-macro>
 
-{%- if MACHINE is defined %}
 {%- for machine in MACHINE.split(' ') | sort %}
-<h1>{{ machine }}</h1>
-<ul>
-    {#- see https://stackoverflow.com/questions/72654161/dynamically-referencing-a-variable-in-jinja2 #}
-    {%- set FILES_machine = self._TemplateReference__context.resolve('FILES_' ~ machine | replace("-", "_")) -%}
-    {%- for machine_file in FILES_machine.split(' ') | sort %}
-    <li>
-        <p><a href="{{ machine_file }}">{{ (machine_file | basename) }}</a></p>
-    </li>
-    {%- endfor %}
-</ul>
+<h2>{{ machine }}</h2>
+{#- see https://stackoverflow.com/questions/72654161/dynamically-referencing-a-variable-in-jinja2 #}
+{%- set SUPPORTED_HARDWARE_machine = self._TemplateReference__context.resolve('SUPPORTED_HARDWARE_' ~ machine | replace("-", "_")).split(',') | sort %}
+<h6>Supported Hardware: {% for hardware in SUPPORTED_HARDWARE_machine %}{% if hardware | trim | length %}{{ hardware | trim }}{{ ", " if not loop.last else "" }}{%- endif -%}{%- endfor -%}
+</h6>
+{%- set FILES_machine = self._TemplateReference__context.resolve('FILES_' ~ machine | replace("-", "_")).split(' ') | sort %}
+{%- set used_files = [] %}
+<ac:structured-macro ac:name="expand">
+    <ac:parameter ac:name="title">Downloads</ac:parameter>
+    <ac:rich-text-body>
+        <table>
+            <tbody>
+                <tr>
+                    <th><b>Image</b></th>
+                    <td>
+                    {%- set files = [] -%}
+                    {%- for file in FILES_machine -%}
+                    {%- if file.endswith(".tar.gz") -%}
+                    {%- set _ = files.append(file) -%}
+                    {%- set _ = used_files.append(file) -%}
+                    {%- endif -%}
+                    {%- endfor -%}
+                    {%- for file in files -%}
+                    <a href="{{ file }}">🔽 {{ (file | basename) }}</a>{{ "<br/>" if not loop.last else "" }}
+                    {%- endfor -%}
+                    </td>
+                </tr>
+                <tr>
+                    <th><b>Install Script</b></th>
+                    <td>
+                    {%- set files = [] -%}
+                    {%- for file in FILES_machine -%}
+                    {%- if file.endswith("fng-install.sh") -%}
+                    {%- set _ = files.append(file) -%}
+                    {%- set _ = used_files.append(file) -%}
+                    {%- endif -%}
+                    {%- endfor -%}
+                    {%- for file in files -%}
+                    <a href="{{ file }}">🔽 {{ (file | basename) }}</a>{{ "<br/>" if not loop.last else "" }}
+                    {%- endfor -%}
+                    </td>
+                </tr>
+                <tr>
+                    <th><b>SDK</b></th>
+                    <td>
+                    {%- set files = [] -%}
+                    {%- for file in FILES_machine -%}
+                    {%- if "toolchain" in file and file.endswith(".sh") -%}
+                    {%- set _ = files.append(file) -%}
+                    {%- set _ = used_files.append(file) -%}
+                    {%- endif -%}
+                    {%- endfor -%}
+                    {%- for file in files -%}
+                    <a href="{{ file }}">🔽 {{ (file | basename) }}</a>{{ "<br/>" if not loop.last else "" }}
+                    {%- endfor -%}
+                    </td>
+                </tr>
+                <tr>
+                    <th><b>Device Trees</b></th>
+                    <td>
+                    {%- set files = [] -%}
+                    {%- for file in FILES_machine -%}
+                    {%- if file.endswith(".dtb") -%}
+                    {%- set _ = files.append(file) -%}
+                    {%- set _ = used_files.append(file) -%}
+                    {%- endif -%}
+                    {%- endfor -%}
+                    {%- for file in files -%}
+                    <a href="{{ file }}">🔽 {{ (file | basename) }}</a>{{ "<br/>" if not loop.last else "" }}
+                    {%- endfor -%}
+                    </td>
+                </tr>
+                <tr>
+                    <th><b>Device Tree Overlays</b></th>
+                    <td>
+                    {%- set files = [] -%}
+                    {%- for file in FILES_machine -%}
+                    {%- if file.endswith(".dtbo") -%}
+                    {%- set _ = files.append(file) -%}
+                    {%- set _ = used_files.append(file) -%}
+                    {%- endif -%}
+                    {%- endfor -%}
+                    {%- for file in files -%}
+                    <a href="{{ file }}">🔽 {{ (file | basename) }}</a>{{ "<br/>" if not loop.last else "" }}
+                    {%- endfor -%}
+                    </td>
+                </tr>
+                <tr>
+                    <th><b>Misc</b></th>
+                    <td>
+                    {%- set files = [] -%}
+                    {%- for file in FILES_machine -%}
+                    {%- if file not in used_files -%}
+                    {%- set _ = files.append(file) -%}
+                    {%- endif -%}
+                    {%- endfor -%}
+                    {%- for file in files -%}
+                    <a href="{{ file }}">🔽 {{ (file | basename) }}</a>{{ "<br/>" if not loop.last else "" }}
+                    {%- endfor -%}
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+    </ac:rich-text-body>
+</ac:structured-macro>
 {%- endfor %}
-{%- endif %}
-- 
GitLab