is-dirty v0.2.1
is-dirty

Returns false if a git repository has no staged, unstaged or untracked changes.
Install
Install with npm:
$ npm install --save is-dirtyAPI
var isDirty = require('is-dirty');
isDirty(directory[, globPatterns], callback);Params
directory{String}: a directory that contains a.gitfolderglobPatterns{String|Array}: optionally pass one or more glob patterns to use for matching any uncommitted files. This is useful if you only want to know if specific files have not been committed.callback: {Function}: function to call after the git status is returned
Usage
isDirty(process.cwd(), function(err, status) {
console.log(status);
});- err: if a
.gitdirectory does not exist - status: if
.gitdirectory exists, and there are no staged, unstaged or untracked changes,statuswill be undefined. Otherwisestatusis an object withstaged,unstagedoruntrackedchanges, andmatchesif glob patterns are passed.
Example
Given you have a project with the following staged files:
.
├── a.txt
├── b.txt
├── c.txt
├── d.txt
└── e.txtThe following:
isDirty(process.cwd(), function(err, status) {
if (err) return console.log(err);
console.log(status);
});Would result in:
{ staged:
[ { file: 'a.txt', status: 'new file' },
{ file: 'b.txt', status: 'new file' },
{ file: 'c.txt', status: 'new file' },
{ file: 'd.txt', status: 'new file' },
{ file: 'e.txt', status: 'new file' } ],
unstaged: [],
untracked: [],
matches: [] }Matches
Pass a glob or array of globs as the second argument to return an array of matching files on the status.matches array:
isDirty(process.cwd(), ['{a,c}.txt'], function(err, status) {
if (err) return console.log(err);
console.log(status);
});Would result in:
{ staged:
[ { file: 'a.txt', status: 'new file' },
{ file: 'b.txt', status: 'new file' },
{ file: 'c.txt', status: 'new file' },
{ file: 'd.txt', status: 'new file' },
{ file: 'e.txt', status: 'new file' } ],
unstaged: [],
untracked: [],
matches: [ 'a.txt', 'c.txt' ] }About
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verbRunning tests
Install dev dependencies:
$ npm install -d && npm testAuthor
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on July 17, 2016.