diff options
author | V <vendicated@riseup.net> | 2023-09-08 02:26:22 +0200 |
---|---|---|
committer | V <vendicated@riseup.net> | 2023-09-08 02:26:47 +0200 |
commit | 5e3a485edcea44bd4b79d0c68665613486fcb0df (patch) | |
tree | e0b5bc6b556cd537d14b75eafb2808a3d1d17e53 /scripts/generatePluginList.ts | |
parent | 452bf72e5675f52bc52694d7191074fe28216a45 (diff) | |
download | Vencord-5e3a485edcea44bd4b79d0c68665613486fcb0df.tar.gz Vencord-5e3a485edcea44bd4b79d0c68665613486fcb0df.tar.bz2 Vencord-5e3a485edcea44bd4b79d0c68665613486fcb0df.zip |
ci: generate plugin readme map
Diffstat (limited to 'scripts/generatePluginList.ts')
-rw-r--r-- | scripts/generatePluginList.ts | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/scripts/generatePluginList.ts b/scripts/generatePluginList.ts index 2c96e61..b788178 100644 --- a/scripts/generatePluginList.ts +++ b/scripts/generatePluginList.ts @@ -165,7 +165,11 @@ async function parseFile(fileName: string) { data.target = target as any; } - return data; + let readme = ""; + try { + readme = readFileSync(join(fileName, "..", "README.md"), "utf-8"); + } catch { } + return [data, readme] as const; } throw fail("no default export called 'definePlugin' found"); @@ -194,18 +198,24 @@ function isPluginFile({ name }: { name: string; }) { (async () => { parseDevs(); - const plugins = ["src/plugins", "src/plugins/_core"].flatMap(dir => + const plugins = [] as PluginData[]; + const readmes = {} as Record<string, string>; + + await Promise.all(["src/plugins", "src/plugins/_core"].flatMap(dir => readdirSync(dir, { withFileTypes: true }) .filter(isPluginFile) - .map(async dirent => - parseFile(await getEntryPoint(dir, dirent)) - ) - ); + .map(async dirent => { + const [data, readme] = await parseFile(await getEntryPoint(dir, dirent)); + plugins.push(data); + if (readme) readmes[data.name] = readme; + }) + )); - const data = JSON.stringify(await Promise.all(plugins)); + const data = JSON.stringify(plugins); - if (process.argv.length > 2) { + if (process.argv.length > 3) { writeFileSync(process.argv[2], data); + writeFileSync(process.argv[3], JSON.stringify(readmes)); } else { console.log(data); } |