git-list-updated
Resolve list of updated (and existing) files
By default it checks difference between HEAD
(so current branch) and master
.
Useful when we want to apply certain operations (e.g. lint) only to files that were updated and not whole repostory
Installation
npm install -g git-list-updated
Usage
CLI
git-list-updated
List updated files
git-list-updated [-h | --help] [--base=<base>] [--head=<head>] [--ext=<ext>] [<path>]
If <path>
is not provided, check is done in repository at current working directory
Options:
base
(defaults to master
)
Base branch with which we wish to compare
head
(defaults to HEAD
)
Target containing the changes that should be investigated
ext
List only files with specific extensions. Multiple extensions can be chosen by passing arg multiple times.
If not passed, all files are listed
pipe-git-updated
Pipe output of git-list-updated into other command.
On *nix systems that could simply be achieved via:
git-list-updated [<...git-list-updated-args>] | <targetComand> [<...target-command-args>]
Purpose of this util is to provide cross environment solution that can also work on Windows
pipe-git-updated [<...git-list-updated-args>] -- <targetComand> [<...target-command-args>]
Programatically
git-list-updated
const gitListUpdated = require("git-list-updated/pipe");
gitListUpdated(respositoryRoot, {
base: "master",
head: "HEAD"
ext: []
})
.on("data", filename => {
console.log(`Updated file: ${filename}`);
})
.then(fileNames => {
console.log(`All updated files: ${fileNames}`);
});
git-list-updated/pipe
const pipeGitUpdated = require("git-list-updated/pipe");
pipeGitUpdated(respositoryRoot, [targetCliCommand, targetCliCommandArg1, targetCliCommandArg2], {
base: "master",
head: "HEAD"
stdio: "inherit"
});
Tests
npm test