mirror of
https://github.com/sass/sass.git
synced 2024-09-21 10:37:22 +00:00
a082ecfbaa
* Include the command for fixing the ToC * Print a patch rather than the entire ToC. * Always enable colors on CI.
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
import * as colors from 'colors/safe';
|
|
import * as diff from 'diff';
|
|
import * as fs from 'fs';
|
|
|
|
import * as toc from '../tool/toc';
|
|
|
|
if (process.env.CI) colors.enable();
|
|
|
|
toc.files.forEach(file => {
|
|
const markdown = fs.readFileSync(file).toString();
|
|
const currentToc = toc.getCurrent(markdown);
|
|
if (currentToc === null) return;
|
|
|
|
const generatedToc = toc.generate(markdown);
|
|
if (currentToc === generatedToc) return;
|
|
|
|
console.error(colors.red(`${file}'s table of contents is incorrect:`));
|
|
const patch = diff.structuredPatch(
|
|
file,
|
|
file,
|
|
currentToc,
|
|
generatedToc,
|
|
'actual',
|
|
'expected'
|
|
);
|
|
console.error(colors.red('--- actual'));
|
|
console.error(colors.green('+++ expected'));
|
|
for (const hunk of patch.hunks) {
|
|
console.error(
|
|
`@@ -${hunk.oldStart},-${hunk.oldLines} ` +
|
|
`+${hunk.newStart},${hunk.newLines} @@`
|
|
);
|
|
for (const line of hunk.lines) {
|
|
if (line.startsWith('+')) {
|
|
console.error(colors.green(line));
|
|
} else if (line.startsWith('-')) {
|
|
console.error(colors.red(line));
|
|
} else {
|
|
console.error(colors.grey(line));
|
|
}
|
|
}
|
|
}
|
|
console.error();
|
|
|
|
process.exitCode = 1;
|
|
});
|
|
|
|
if (process.exitCode === 1) {
|
|
console.error(
|
|
'To fix tables of contents, run ' +
|
|
colors.blue('`npx ts-node tool/update-toc.ts`') +
|
|
'.'
|
|
);
|
|
}
|