20 lines
597 B
JavaScript
20 lines
597 B
JavaScript
const execFileSync = require('child_process').execFileSync;
|
|
|
|
const exec = (command, args) => {
|
|
const options = {
|
|
cwd: process.cwd(),
|
|
env: process.env,
|
|
encoding: 'utf-8',
|
|
};
|
|
return execFileSync(command, args, options);
|
|
};
|
|
|
|
const execGitCmd = (args) => exec('git', args).trim().toString().split('\n').filter(Boolean);
|
|
|
|
module.exports = {
|
|
getStagedFiles: (fileExtensionFilter) => {
|
|
const gitOptions = ['diff', '--name-only', '--cached', '--diff-filter=ACMRTUB'];
|
|
if (fileExtensionFilter) gitOptions.push(...fileExtensionFilter);
|
|
return execGitCmd(gitOptions);
|
|
},
|
|
};
|