Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async.mapLimit(src, EXEC_LIMIT, function (filepath, cb) {
let stdout = '';
const proc = clangFormat.spawnClangFormat([ '-style=file', '-output-replacements-xml', filepath ], function () {}, 'pipe');
proc.stdout.on('data', function (data) {
stdout += data.toString();
});
proc.on('close', function (exit) {
if (exit) {
grunt.log.warn('Exit code: ' + exit);
grunt.fail.fatal(stdout);
cb(exit);
}
const modified = stdout.replace(/\r?\n/g, '');
if (modified !== '') {
// Record failure, because formatting is bad.
// TODO Get the correctly formatted source? Give more details on the bad sections?
errors.push(new Error('Formatting incorrect on "' + filepath + '", proposed changes: ' + stdout));
}
function spawnClangFormat(args, done, stdio) {
// WARNING: This function's interface should stay stable across versions for the cross-version
// loading below to work.
let nativeBinary;
try {
nativeBinary = getNativeBinary();
} catch (e) {
setImmediate(done.bind(e));
return;
}
let files = listAllTrackedFiles(path.resolve(__dirname, '../..'));
// Apply file filters from constants
files = files.filter(
file =>
includeEndsWith.some(_ => file.endsWith(_)) &&
!excludePathContains.some(_ => file.indexOf(_) > 0) &&
!excludePathEndsWith.some(_ => file.endsWith(_)),
);
// split file array into chunks of 30