mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 02:09:32 -04:00
34 lines
928 B
JavaScript
34 lines
928 B
JavaScript
var _ = require('lodash');
|
|
var resolve = require('path').resolve;
|
|
var root = resolve(__dirname, '..');
|
|
var simpleGit = require('simple-git')(root);
|
|
var diff = require('bluebird').promisify(simpleGit.diff, simpleGit);
|
|
|
|
module.exports = function (grunt) {
|
|
|
|
grunt.registerTask(
|
|
'lintStagedFiles',
|
|
'Run staged files through JSHint/JSCS',
|
|
function () {
|
|
|
|
diff(['--name-only', '--cached'])
|
|
.then(function (files) {
|
|
// match these patterns
|
|
var patterns = grunt.config.get('eslint.files.src');
|
|
files = files.split('\n').filter(Boolean).map(function (file) {
|
|
return resolve(root, file);
|
|
});
|
|
|
|
files = grunt.file.match(patterns, files);
|
|
grunt.log.debug(files);
|
|
|
|
if (!_.size(files)) return;
|
|
grunt.config.set('eslint.staged.files.src', files);
|
|
grunt.task.run(['eslint:staged']);
|
|
})
|
|
.nodeify(this.async());
|
|
|
|
}
|
|
);
|
|
};
|
|
|