mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-07 09:36:41 +02:00
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
/* eslint-disable no-console */
|
|
|
|
/**
|
|
* @file Update the MERMAID_RELEASE_VERSION placeholder in the documentation source files with the current version of mermaid.
|
|
* So contributors adding new features will only have to add the placeholder and not worry about updating the version number.
|
|
*
|
|
*/
|
|
import { posix } from 'path';
|
|
import {
|
|
getGlobs,
|
|
getFilesFromGlobs,
|
|
SOURCE_DOCS_DIR,
|
|
readSyncedUTF8file,
|
|
MERMAID_RELEASE_VERSION,
|
|
} from './docs.mjs';
|
|
import { writeFile } from 'fs/promises';
|
|
|
|
const verifyOnly: boolean = process.argv.includes('--verify');
|
|
const versionPlaceholder = '<MERMAID_RELEASE_VERSION>';
|
|
|
|
const main = async () => {
|
|
const sourceDirGlob = posix.join('.', SOURCE_DOCS_DIR, '**');
|
|
const mdFileGlobs = getGlobs([posix.join(sourceDirGlob, '*.md')]);
|
|
mdFileGlobs.push('!**/community/development.md');
|
|
const mdFiles = await getFilesFromGlobs(mdFileGlobs);
|
|
mdFiles.sort();
|
|
const mdFilesWithPlaceholder: string[] = [];
|
|
for (const mdFile of mdFiles) {
|
|
const content = readSyncedUTF8file(mdFile);
|
|
if (content.includes(versionPlaceholder)) {
|
|
mdFilesWithPlaceholder.push(mdFile);
|
|
}
|
|
}
|
|
|
|
if (mdFilesWithPlaceholder.length === 0) {
|
|
return;
|
|
}
|
|
|
|
if (verifyOnly) {
|
|
console.log(
|
|
`${mdFilesWithPlaceholder.length} file(s) were found with the placeholder ${versionPlaceholder}. Run \`pnpm --filter mermaid docs:release-version\` to update them.`
|
|
);
|
|
process.exit(1);
|
|
}
|
|
|
|
for (const mdFile of mdFilesWithPlaceholder) {
|
|
const content = readSyncedUTF8file(mdFile);
|
|
const newContent = content.replace(versionPlaceholder, MERMAID_RELEASE_VERSION);
|
|
await writeFile(mdFile, newContent);
|
|
}
|
|
};
|
|
|
|
void main();
|