gitmodified plugin for gulp
A plugin for Gulp to get an object stream of git status files on git (e.g. modified, deleted, untracked, etc).
First, install gulp-gitmodified
as a development dependency:
npm install --save-dev gulp-gitmodified
Then, add it to your gulpfile.js
:
var gitmodified = require('gulp-gitmodified');
var files = gulp.src('./src/*.ext')
.pipe(gitmodified('modified'));
files.on('data', function (file) {
console.log('Modified file:', file);
});
For statusMode
, you can pass a single string value or an array of string values.
gulp-gitmodified
extends the vinyl file format gulp uses to have a method
for checking if file is deleted. isDeleted
is true if checking for deleted
files (see below), and false otherwise.
Options can be used to pass in gitCwd
, to override from which directory
git should be executed. This is handy in case you have your gulpfile in a
different directory than your where your repo resides.
// Options can be the following:
{
gitCwd: String,
modes: statusMode
}
modes
is the value from below. If not defined it will default to modified
.
Type: String
|| Array
Default: 'modified'
What status mode to look for. From git documentation:
M = modified
A = added
D = deleted
R = renamed
C = copied
U = updated but unmerged
?? = untracked
!! = ignored
(and more if in short format (e.g. AM), see Short Format on git status man page)
// All added files
gulp.src('./**/*')
.pipe(gitmodified('added'))
// Equal to the one before
gulp.src('./**/*')
.pipe(gitmodified('A'))
// All added and modified files
gulp.src('./**/*')
.pipe(gitmodified(['added', 'modified']))
// All added and modified files, from different git directory
gulp.src('./**/*')
.pipe(gitmodified({
modes: ['added', 'modified'],
gitCwd: '../../differentDirectory'
}))
// All deleted files.
gulp.src('./**/*')
.pipe(gitmodified('deleted'))
.on('data', function (file) {
console.log(file.isDeleted()); //=> true
});