Skip to content

Latest commit

 

History

History
90 lines (66 loc) · 2.03 KB

.verb.md

File metadata and controls

90 lines (66 loc) · 2.03 KB

API

var isDirty = require('{%= name %}');

isDirty(directory[, globPatterns], callback);

Params

  • directory {String}: a directory that contains a .git folder
  • globPatterns {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 .git directory does not exist
  • status: if .git directory exists, and there are no staged, unstaged or untracked changes, status will be undefined. Otherwise status is an object with staged, unstaged or untracked changes, and matches if glob patterns are passed.

Example

Given you have a project with the following staged files:

.
├── a.txt
├── b.txt
├── c.txt
├── d.txt
└── e.txt

The 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' ] }