71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
#!/usr/bin/env node
|
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
|
|
/**
|
|
* This script will
|
|
* - Generate OCLIF CLI documentation
|
|
* - Add underscores to filenames so they are hidden in docusaurus sidebar
|
|
* - Remove first two lines so they are partial MDX files and can be imported
|
|
*/
|
|
|
|
const shell = require("shelljs");
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const { execSync } = require("child_process");
|
|
|
|
const projectRoot = path.join(__dirname, "..", "..");
|
|
const cliPath = path.join(projectRoot, "cli");
|
|
const cliOutPath = path.join(projectRoot, "website", "api", "cli");
|
|
const cliOutRelPath = path.relative(cliPath, cliOutPath);
|
|
const oclifBin = path.join(
|
|
projectRoot,
|
|
"cli",
|
|
"node_modules",
|
|
".bin",
|
|
"oclif-dev"
|
|
);
|
|
|
|
// Generate Oclif documentation
|
|
shell.cd(cliPath);
|
|
if (shell.exec(`npx oclif-dev readme`).code !== 0) {
|
|
shell.echo(`Error: Oclif failed to generate documentation`);
|
|
shell.exit(1);
|
|
}
|
|
if (
|
|
shell.exec(`npx oclif-dev readme --multi --dir ${cliOutRelPath}`).code !== 0
|
|
) {
|
|
shell.echo(`Error: Oclif failed to generate documentation`);
|
|
shell.exit(1);
|
|
}
|
|
|
|
shell.cd(cliOutPath);
|
|
|
|
// Remove old underscored files
|
|
shell.ls(`_*.md`).forEach((file) => {
|
|
shell.rm(file);
|
|
});
|
|
|
|
// Add underscores, remove first two lines, and update documentation path
|
|
shell.ls(`*.md`).forEach((file) => {
|
|
// add underscore to filename
|
|
const fileName = path.basename(file);
|
|
const underscoredFileName = "_" + fileName;
|
|
shell.mv("-f", fileName, underscoredFileName);
|
|
|
|
// TODO: Update URL to release tag
|
|
// update github documentation links
|
|
shell.sed(
|
|
"-i",
|
|
`https://github.com/switchboard-xyz/switchboard-v2/blob/.*/src`,
|
|
"https://github.com/switchboard-xyz/switchboard-v2/tree/main/cli/src",
|
|
underscoredFileName
|
|
);
|
|
|
|
// remove first two lines
|
|
fs.writeFileSync(
|
|
underscoredFileName,
|
|
fs.readFileSync(underscoredFileName, "utf8").split("\n").slice(2).join("\n")
|
|
);
|
|
});
|