Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

clang-format

Package Overview
Dependencies
Maintainers
3
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

clang-format - npm Package Compare versions

Comparing version 1.2.3 to 1.2.4

19

bin/check-clang-format.js

@@ -18,9 +18,5 @@ #!/usr/bin/env node

const spawn_opts = {encoding: 'utf-8', stdio: ['pipe', 'pipe', 'inherit']};
const binary =
spawn('git', ['config', '--get', 'clangFormat.binary'], spawn_opts)
.stdout.trim();
const style =
spawn('git', ['config', '--get', 'clangFormat.style'], spawn_opts)
.stdout.trim();
var gitConfigWrong = false;
const binary = spawn('git', ['config', '--get', 'clangFormat.binary'], spawn_opts).stdout.trim();
const style = spawn('git', ['config', '--get', 'clangFormat.style'], spawn_opts).stdout.trim();
let gitConfigWrong = false;

@@ -51,5 +47,8 @@ if (binary !== 'node_modules/.bin/clang-format') {

function main(args) {
let clangFormatPath;
let configCheck;
try {
var clangFormatPath = path.dirname(require.resolve('clang-format'));
var configCheck = checkGitConfig();
clangFormatPath = path.dirname(require.resolve('clang-format'));
configCheck = checkGitConfig();

@@ -60,3 +59,3 @@ if (configCheck !== 0) return configCheck;

// different place
var clangFormatPath = '.';
clangFormatPath = '.';
// And we don't run the configCheck, because the clang-format binary is also

@@ -63,0 +62,0 @@ // in a different place

#!/usr/bin/env node
'use strict';
var fs = require('fs');
var os = require('os');
var path = require('path');
var resolve = require('resolve').sync;
var spawn = require('child_process').spawn;
var glob = require('glob');
var async = require('async');
const fs = require('fs');
const os = require('os');
const path = require('path');
const resolve = require('resolve').sync;
const spawn = require('child_process').spawn;
const glob = require('glob');
const async = require('async');
var VERSION = require('./package.json').version;
var LOCATION = __filename;
const VERSION = require('./package.json').version;
const LOCATION = __filename;
// Glob pattern option name
const GLOB_OPTION = '--glob=';
function errorFromExitCode(exitCode) {
return new Error('clang-format exited with exit code ' + exitCode + '.');
return new Error(`clang-format exited with exit code ${exitCode}.`);
}
/**
* Start a child process running the native clang-format binary.
* Starts a child process running the native clang-format binary.
*
* @param file a Vinyl virtual file reference

@@ -28,4 +32,4 @@ * @param enc the encoding to use for reading stdout

function clangFormat(file, enc, style, done) {
var args = ['-style=' + style, file.path];
var result = spawnClangFormat(args, done, ['ignore', 'pipe', process.stderr]);
let args = [`-style=${style}`, file.path];
let result = spawnClangFormat(args, done, ['ignore', 'pipe', process.stderr]);
if (result) { // must be ChildProcess

@@ -47,20 +51,16 @@ result.stdout.setEncoding(enc);

// loading below to work.
var nativeBinary;
if (os.platform() === 'win32') {
nativeBinary = __dirname + '/bin/win32/clang-format.exe';
} else {
nativeBinary = __dirname + '/bin/' + os.platform() + '_' + os.arch() + '/clang-format';
}
if (!fs.existsSync(nativeBinary)) {
var message = 'This module doesn\'t bundle the clang-format executable for your platform. ' +
'(' + os.platform() + '_' + os.arch() + ')\n' +
'Consider installing it with your native package manager instead.\n';
setImmediate(done.bind(new Error(message)));
let nativeBinary;
try {
nativeBinary = getNativeBinary();
} catch (e) {
setImmediate(done.bind(e));
return;
}
if (args.indexOf('-version') !== -1 || args.indexOf('--version') !== -1) {
if (args.find(a => a === '-version' || a === '--version')) {
// Print our version.
// This makes it impossible to format files called '-version' or '--version'. That's a feature.
// minimist & Co don't support single dash args, which we need to match binary clang-format.
console.log('clang-format NPM version', VERSION, 'at', LOCATION);
console.log(`clang-format NPM version ${VERSION} at ${LOCATION}`);
args = ['--version'];

@@ -70,15 +70,7 @@ }

// extract glob, if present
var filesGlob = args.filter(function(arg) {
return arg.indexOf('--glob=') === 0;
})
.map(function(arg) {
return arg.replace('--glob=', '');
})
.shift();
const filesGlob = getGlobArg(args);
if (filesGlob) {
// remove glob from arg list
args = args.filter(function(arg) {
return arg.indexOf('--glob=') === -1;
});
args = args.filter(arg => arg.indexOf(GLOB_OPTION) === -1);

@@ -92,3 +84,4 @@ glob(filesGlob, function(err, files) {

// split file array into chunks of 30
var i, j, chunks = [], chunkSize = 30;
let i, j, chunks = [], chunkSize = 30;
for (i = 0, j = files.length; i < j; i += chunkSize) {

@@ -102,3 +95,3 @@ chunks.push(files.slice(i, i + chunkSize));

return function(callback) {
var clangFormatProcess = spawn(nativeBinary, args.concat(chunk), {stdio: stdio});
const clangFormatProcess = spawn(nativeBinary, args.concat(chunk), {stdio: stdio});
clangFormatProcess.on('close', function(exit) {

@@ -118,3 +111,4 @@ if (exit !== 0)

console.log('\n');
console.log('ran clang-format on', files.length, files.length === 1 ? 'file' : 'files');
console.log(
`ran clang-format on ${files.length} ${files.length === 1 ? 'file' : 'files'}`);
done();

@@ -124,3 +118,3 @@ });

} else {
var clangFormatProcess = spawn(nativeBinary, args, {stdio: stdio});
const clangFormatProcess = spawn(nativeBinary, args, {stdio: stdio});
clangFormatProcess.on('close', function(exit) {

@@ -139,13 +133,12 @@ if (exit) {

// Find clang-format in node_modules of the project of the .js file, or cwd.
var nonDashArgs = process.argv.filter(function(arg, idx) {
return idx > 1 && arg[0] != '-';
});
const nonDashArgs = process.argv.filter((arg, idx) => idx > 1 && arg[0] != '-');
// Using the last file makes it less likely to collide with clang-format's argument parsing.
var lastFileArg = nonDashArgs[nonDashArgs.length - 1];
var basedir = lastFileArg ? path.dirname(lastFileArg) : // relative to the last .js file given.
process.cwd(); // or relative to the cwd()
var resolvedClangFormat;
var clangFormatLocation;
const lastFileArg = nonDashArgs[nonDashArgs.length - 1];
const basedir = lastFileArg ? path.dirname(lastFileArg) : // relative to the last .js file given.
process.cwd(); // or relative to the cwd()
let resolvedClangFormat;
let clangFormatLocation;
try {
clangFormatLocation = resolve('clang-format', {basedir: basedir});
clangFormatLocation = resolve('clang-format', {basedir});
resolvedClangFormat = require(clangFormatLocation);

@@ -155,3 +148,3 @@ } catch (e) {

}
var actualSpawnFn;
let actualSpawnFn;
if (!resolvedClangFormat) {

@@ -162,3 +155,3 @@ actualSpawnFn = spawnClangFormat;

} else {
throw new Error('Incompatible clang-format loaded from ' + clangFormatLocation);
throw new Error(`Incompatible clang-format loaded from ${clangFormatLocation}`);
}

@@ -175,2 +168,35 @@ // Run clang-format.

/**
* @returns the native `clang-format` binary for the current platform
* @throws when the `clang-format` executable can not be found
*/
function getNativeBinary() {
let nativeBinary;
if (os.platform() === 'win32') {
nativeBinary = `${__dirname}/bin/win32/clang-format.exe`;
} else {
nativeBinary = `${__dirname}/bin/${os.platform()}_${os.arch()}/clang-format`;
}
if (!fs.existsSync(nativeBinary)) {
const message = 'This module doesn\'t bundle the clang-format executable for your platform. ' +
`(${os.platform()}_${os.arch()})\n` +
'Consider installing it with your native package manager instead.\n';
throw new Error(message);
}
return nativeBinary;
}
/**
* Filters the arguments to return the value of the `--glob=` option.
*
* @returns The value of the glob option or null if not found
*/
function getGlobArg(args) {
const found = args.find(a => a.startsWith(GLOB_OPTION));
return found ? found.substring(GLOB_OPTION.length) : null;
}
module.exports = clangFormat;

@@ -180,3 +206,4 @@ module.exports.version = VERSION;

module.exports.spawnClangFormat = spawnClangFormat;
module.exports.getNativeBinary = getNativeBinary;
if (require.main === module) main();
{
"name": "clang-format",
"version": "1.2.3",
"version": "1.2.4",
"description": "node wrapper around clang-format",

@@ -16,3 +16,2 @@ "repository": {

"scripts": {
"precommit": "node bin/check-clang-format.js \"bin/git-clang-format\"",
"test": "./test.sh"

@@ -23,3 +22,4 @@ },

"Martin Probst <martinprobst@google.com>",
"Filipe Silva <filipematossilva@gmail.com>"
"Filipe Silva <filipematossilva@gmail.com>",
"Victor Berchet <victor@suumit.com>"
],

@@ -31,6 +31,3 @@ "license": "Apache-2.0",

"resolve": "^1.1.6"
},
"devDependencies": {
"husky": "^0.14.3"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc