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-gitmodifiedThen, 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
});

