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 -
+

AdGuard
Home

Anchor -
+

Anchor

- + ArchiveTeam Warrior -
+

ArchiveTeam
Warrior

Aria2 -
+

Aria2

- + Audiobookshelf -
+

Audiobookshelf

Bazarr -
+

Bazarr

Beszel -
+

Beszel

Coolify -
+

Coolify

Dash. -
+

Dash.

Deluge -
+

Deluge

Emby -
+

Emby

- + Glances -
+

Glances

Gluetun -
+

Gluetun

Gotify -
+

Gotify

Home Assistant -
+

Home
Assistant

iCal -
+

iCal

Immich -
+

Immich

Jellyfin -
+

Jellyfin

Jellyseerr -
+

Jellyseerr

Lidarr -
+

Lidarr

- + Navidrome -
+

Navidrome

Nextcloud -
+

Nextcloud

ntfy -
+

ntfy

NZBGet -
+

NZBGet

OpenMediaVault -
+

OpenMediaVault

OPNsense -
+

OPNsense

Overseerr -
+

Overseerr

- + Paperless-ngx -
+

Paperless-ngx

PatchMon -
+

PatchMon

- + PeaNUT -
+

PeaNUT

Pi-hole -
+

Pi-hole

Plex -
+

Plex

Prowlarr -
+

Prowlarr

Proxmox -
+

Proxmox

qBittorrent -
+

qBittorrent

Radarr -
+

Radarr

- Readarr -
+ Readarr +

Readarr

SABnzbd -
+

SABnzbd

Seerr -
+

Seerr

Slskd -
+

Slskd

Sonarr -
+

Sonarr

Speedtest Tracker -
+

Speedtest
Tracker

Synology DiskStation -
+

Synology
DiskStation

Tdarr -
+

Tdarr

Technitium DNS -
+

Technitium
DNS

Tracearr -
+

Tracearr

Traefik -
+

Traefik

Transmission -
+

Transmission

TrueNAS -
+

TrueNAS

Umami -
+

Umami

Unifi Controller -
+

Unifi
Controller

Unraid -
+

Unraid

- + Uptime Kuma -
+

Uptime
Kuma

What's Up Docker -
+

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} -
+

${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; +});