Skip to content

Commit

Permalink
chore: fixup linter commands (#940)
Browse files Browse the repository at this point in the history
  • Loading branch information
legendecas authored Mar 22, 2021
1 parent fc4585f commit 1916cb9
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 7 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -344,8 +344,8 @@
"predev:incremental": "node-gyp configure build -C test --debug",
"dev:incremental": "node test",
"doc": "doxygen doc/Doxyfile",
"lint": "node tools/clang-format.js",
"lint:fix": "git-clang-format '*.h', '*.cc'"
"lint": "node tools/clang-format",
"lint:fix": "node tools/clang-format --fix"
},
"pre-commit": "lint",
"version": "3.1.0",
Expand Down
30 changes: 25 additions & 5 deletions tools/clang-format.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,31 @@ const filesToCheck = ['*.h', '*.cc'];
const CLANG_FORMAT_START = process.env.CLANG_FORMAT_START || 'main';

function main(args) {
let fix = false;
while (args.length > 0) {
switch (args[0]) {
case '-f':
case '--fix':
fix = true;
default:
}
args.shift();
}

let clangFormatPath = path.dirname(require.resolve('clang-format'));
const options = ['--binary=node_modules/.bin/clang-format', '--style=file'];
if (fix) {
options.push(CLANG_FORMAT_START);
} else {
options.push('--diff', CLANG_FORMAT_START);
}

const gitClangFormatPath = path.join(clangFormatPath,
'bin/git-clang-format');
const result = spawn('python', [
gitClangFormatPath,
...options,
'--diff',
CLANG_FORMAT_START,
'HEAD',
'--',
...filesToCheck
], { encoding: 'utf-8' });

Expand All @@ -27,13 +41,19 @@ function main(args) {
}

const clangFormatOutput = result.stdout.trim();
// Bail fast if in fix mode.
if (fix) {
console.log(clangFormatOutput);
return 0;
}
// Detect if there is any complains from clang-format
if (clangFormatOutput !== '' &&
clangFormatOutput !== ('no modified files to format') &&
clangFormatOutput !== ('clang-format did not modify any files')) {
console.error(clangFormatOutput);
const fixCmd = '"npm run lint:fix"';
const fixCmd = 'npm run lint:fix';
console.error(`
ERROR: please run ${fixCmd} to format changes in your commit
ERROR: please run "${fixCmd}" to format changes in your commit
Note that when running the command locally, please keep your local
main branch and working branch up to date with nodejs/node-addon-api
to exclude un-related complains.
Expand Down

0 comments on commit 1916cb9

Please sign in to comment.