Change permissions of Vinyl files
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.editorconfig [breaking] ES2015ify and require Node.js 4 Nov 8, 2016
.gitattributes
.gitignore
.travis.yml
index.js
license
package.json
readme.md
test.js

readme.md

gulp-chmod Build Status

Change permissions of Vinyl files

Install

$ npm install --save-dev gulp-chmod

Usage

const gulp = require('gulp');
const chmod = require('gulp-chmod');

gulp.task('default', () =>
	gulp.src('src/app.js')
		.pipe(chmod(0o755))
		.pipe(gulp.dest('dist'))
);

or

const gulp = require('gulp');
const chmod = require('gulp-chmod');

gulp.task('default', () =>
	gulp.src('src/app.js')
		.pipe(chmod({
			owner: {
				read: true,
				write: true,
				execute: true
			},
			group: {
				execute: true
			},
			others: {
				execute: true
			}
		}))
		.pipe(gulp.dest('dist'))
);

API

chmod(mode, [dirMode])

mode

Type: number Object

Can either be a chmod octal number or an object with the individual permissions specified.

Values depends on the current file, but these are the possible keys:

{
	owner: {
		read: true,
		write: true,
		execute: true
	},
	group: {
		read: true,
		write: true,
		execute: true
	},
	others: {
		read: true,
		write: true,
		execute: true
	}
}

When read, write, and execute are same, you can simplify the object:

{
	read: true
}

Pass null to not set permissions on files. Useful if you only want to set permissions on directories.

dirMode

Type: true number Object

Same as mode, but applies to directories. Specify true to use the same value as mode.

Tip

Combine it with gulp-filter to only change permissions on a subset of the files.

const gulp = require('gulp');
const gFilter = require('gulp-filter');
const chmod = require('gulp-chmod');

const filter = gFilter('src/cli.js', {restore: true});

gulp.task('default', () =>
	gulp.src('src/*.js')
		// filter a subset of the files
		.pipe(filter)
		// make them executable
		.pipe(chmod(0o755))
		// bring back the previously filtered out files
		.pipe(filter.restore)
		.pipe(gulp.dest('dist'))
);

Related

License

MIT © Sindre Sorhus