mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Consolidate git file logic in lintStagedFiles task
We limit the amount of moving parts when it comes to parsing our staged files in git by reusing the files_to_commit utility rather than the now-defunct collectStagedFiles task. Fixes #5781
This commit is contained in:
parent
672555e6aa
commit
db2be0f411
4 changed files with 14 additions and 31 deletions
|
@ -1,28 +0,0 @@
|
|||
import { resolve } from 'path';
|
||||
import SimpleGit from 'simple-git';
|
||||
import { promisify } from 'bluebird';
|
||||
|
||||
const root = resolve(__dirname, '..');
|
||||
const simpleGit = new SimpleGit(root);
|
||||
const diff = promisify(simpleGit.diff, simpleGit);
|
||||
|
||||
export default function (grunt) {
|
||||
grunt.registerTask('collectStagedFiles', function () {
|
||||
diff(['--name-status', '--cached'])
|
||||
.then(output => {
|
||||
const files = output
|
||||
.split('\n')
|
||||
.map(line => line.trim().split('\t'))
|
||||
.map(parts => {
|
||||
const status = parts.shift();
|
||||
if (status === 'D' || status === 'U') return;
|
||||
return parts.join('\t').trim();
|
||||
})
|
||||
.filter(Boolean);
|
||||
|
||||
grunt.log.ok(files.length + ' staged files');
|
||||
grunt.config.set('stagedFiles', files);
|
||||
})
|
||||
.nodeify(this.async());
|
||||
});
|
||||
};
|
|
@ -1,17 +1,20 @@
|
|||
import { resolve } from 'path';
|
||||
import { isStaged, getFilename } from './utils/files_to_commit';
|
||||
|
||||
const root = resolve(__dirname, '..');
|
||||
|
||||
export default function (grunt) {
|
||||
grunt.registerTask('lintStagedFiles', function () {
|
||||
grunt.task.requires('collectStagedFiles');
|
||||
grunt.task.requires('collectFilesToCommit');
|
||||
|
||||
// match these patterns
|
||||
var patterns = grunt.config.get('eslint.source.files.src');
|
||||
if (!patterns) grunt.fail.warn('eslint file pattern is not defined');
|
||||
|
||||
const files = grunt.config
|
||||
.get('stagedFiles')
|
||||
.get('filesToCommit')
|
||||
.filter(isStaged)
|
||||
.map(getFilename)
|
||||
.map(file => resolve(root, file))
|
||||
.filter(file => grunt.file.isMatch(patterns, file));
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
export default function (grunt) {
|
||||
grunt.registerTask('precommit', [
|
||||
'collectFilesToCommit',
|
||||
'collectStagedFiles',
|
||||
'checkAddedFilenames',
|
||||
'lintStagedFiles'
|
||||
]);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import SimpleGit from 'simple-git';
|
||||
import { promisify } from 'bluebird';
|
||||
import { includes } from 'lodash';
|
||||
|
||||
export default function filesToCommit(path) {
|
||||
const simpleGit = new SimpleGit(path);
|
||||
|
@ -30,3 +31,11 @@ export function isAdded(file) {
|
|||
export function isDeleted(file) {
|
||||
return file.status === 'D';
|
||||
}
|
||||
|
||||
export function isUnmerged(file) {
|
||||
return file.status === 'U';
|
||||
}
|
||||
|
||||
export function isStaged(file) {
|
||||
return !isDeleted(file) && !isUnmerged(file);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue