aboutsummaryrefslogtreecommitdiff
path: root/scripts/generatePluginList.ts
diff options
context:
space:
mode:
authorV <vendicated@riseup.net>2023-09-08 02:26:22 +0200
committerV <vendicated@riseup.net>2023-09-08 02:26:47 +0200
commit5e3a485edcea44bd4b79d0c68665613486fcb0df (patch)
treee0b5bc6b556cd537d14b75eafb2808a3d1d17e53 /scripts/generatePluginList.ts
parent452bf72e5675f52bc52694d7191074fe28216a45 (diff)
downloadVencord-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.ts26
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);
}