diff --git a/docs/README.md b/docs/README.md
index 6dc6b6ff5..d2b7541be 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -62,378 +62,378 @@
-
+
AdGuard Home
|
-
+
Anchor
|
-
+
-
+
ArchiveTeam Warrior
|
-
+
Aria2
|
-
+
-
+
Audiobookshelf
|
-
+
Bazarr
|
-
+
Beszel
|
-
+
Coolify
|
-
+
Dash.
|
-
+
Deluge
|
-
+
Emby
|
-
+
-
+
Glances
|
-
+
Gluetun
|
-
+
Gotify
|
-
+
Home Assistant
|
-
+
iCal
|
-
+
Immich
|
-
+
Jellyfin
|
-
+
Jellyseerr
|
-
+
Lidarr
|
-
+
-
+
Navidrome
|
-
+
Nextcloud
|
-
+
ntfy
|
-
+
NZBGet
|
-
+
OpenMediaVault
|
-
+
OPNsense
|
-
+
Overseerr
|
-
+
-
+
Paperless-ngx
|
-
+
PatchMon
|
-
+
-
+
PeaNUT
|
-
+
Pi-hole
|
-
+
Plex
|
-
+
Prowlarr
|
-
+
Proxmox
|
-
+
qBittorrent
|
-
+
Radarr
|
-
-
+
+
Readarr
|
-
+
SABnzbd
|
-
+
Seerr
|
-
+
Slskd
|
-
+
Sonarr
|
-
+
Speedtest Tracker
|
-
+
Synology DiskStation
|
-
+
Tdarr
|
-
+
Technitium DNS
|
-
+
Tracearr
|
-
+
Traefik
|
-
+
Transmission
|
-
+
TrueNAS
|
-
+
Umami
|
-
+
Unifi Controller
|
-
+
Unraid
|
-
+
-
+
Uptime Kuma
|
-
+
What's Up Docker
|
diff --git a/scripts/update-integration-list.mts b/scripts/update-integration-list.mts
index 734a74535..8ae0cf8d8 100644
--- a/scripts/update-integration-list.mts
+++ b/scripts/update-integration-list.mts
@@ -1,5 +1,9 @@
import { readFile, writeFile } from "fs/promises";
-import { integrationDefs } from "../packages/definitions/src/integration";
+import {
+ getIntegrationDocumentationUrl,
+ integrationDefs,
+ integrationKinds,
+} from "../packages/definitions/src/integration";
const FILE = "docs/README.md";
const MAX_COLUMNS_PER_ROW = 7;
@@ -21,19 +25,29 @@ async function updateIntegrationList() {
}
// Generate the new integration list
- const integrations = Object.values(integrationDefs)
- .filter((def) => def.name !== "Mock")
- .sort((a, b) => a.name.localeCompare(b.name));
+ const integrations = integrationKinds
+ .filter((kind) => kind !== "mock")
+ .map((kind) => ({
+ ...integrationDefs[kind],
+ documentationUrl: getIntegrationDocumentationUrl(kind),
+ }))
+ .toSorted((a, b) => a.name.localeCompare(b.name));
const tableRows: string[] = [];
let currentRow: string[] = [];
integrations.forEach((integration) => {
- currentRow.push(`
-
+ const cellBody = `
-
+
${integration.name.replaceAll(" ", " ")}
-
+`;
+ let cellContent = `${cellBody} `;
+ if (integration.documentationUrl !== null) {
+ cellContent = `${cellBody}`;
+ }
+
+ currentRow.push(` |
+${cellContent}
| `);
if (currentRow.length === MAX_COLUMNS_PER_ROW) {
@@ -67,4 +81,7 @@ ${endMarker}`;
await writeFile(FILE, newContent, "utf8");
}
-updateIntegrationList().catch(console.error);
+updateIntegrationList().catch((error: unknown) => {
+ console.error(error);
+ process.exitCode = 1;
+});