UNPKG

git-files

Version:
49 lines (43 loc) 1.99 kB
'use strict'; var chalk = require('chalk'); var utils = require('./utils'); var STAGED_COMMAND = 'git diff --cached --name-only'; var MODIFIED_COMMAND = 'git diff --name-status | awk \'{ if ($1 == "M") print $2 }\''; var UNTRACKED_COMMAND = 'git ls-files --other --exclude-standard --full-name'; var DELETED_COMMAND = 'git ls-files --deleted --full-name'; function findFiles(pathType, listCommand) { if (pathType === 'full') { return utils.listFull(listCommand); } else if (pathType === 'absolute') { return utils.listAbsolute(listCommand); } else if (pathType === 'relative') { return utils.listRelative(listCommand); } else { throw new Error(error(pathType)); } } function error(pathType) { return chalk.green('\'' + pathType + '\'') + ' is not a valid path type. Please specify ' + chalk.green('\'full\'') + ' (default), ' + chalk.green('\'relative\'') + ', or ' + chalk.green('\'absolute\'') + '.'; } module.exports = { staged: function staged() { var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'full'; return findFiles(pathType, STAGED_COMMAND); }, deleted: function deleted() { var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'full'; return findFiles(pathType, DELETED_COMMAND); }, modified: function modified() { var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'full'; return findFiles(pathType, MODIFIED_COMMAND); }, untracked: function untracked() { var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'full'; return findFiles(pathType, UNTRACKED_COMMAND); }, all: function all() { var pathType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'full'; return Array.from(new Set([].concat(findFiles(pathType, STAGED_COMMAND)).concat(findFiles(pathType, DELETED_COMMAND)).concat(findFiles(pathType, MODIFIED_COMMAND)).concat(findFiles(pathType, UNTRACKED_COMMAND)))); } };