kibana/tasks/utils/files_to_commit.js

46 lines
1.1 KiB
JavaScript

import SimpleGit from 'simple-git';
import { promisify } from 'bluebird';
import { includes } from 'lodash';
export default function filesToCommit(path) {
const simpleGit = new SimpleGit(path);
const gitDiff = promisify(simpleGit.diff, simpleGit);
const pathsToIgnore = ['webpackShims'];
return gitDiff(['--name-status', '--cached'])
.then(output => {
return output
.split('\n')
.map(line => line.trim().split('\t'))
.filter(parts => parts.length === 2)
.filter(parts => {
return pathsToIgnore.reduce((prev, curr) => {(prev === false) ? prev : parts[1].indexOf(curr) === -1;}, true);
})
.map(parts => {
const status = parts.shift();
const name = parts.join('\t').trim();
return { status, name };
});
});
};
export function getFilename(file) {
return file.name;
}
export function isAdded(file) {
return file.status === 'A';
};
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);
}