Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

gulp-chmod

sindresorhus129.1kMIT4.0.0

Change permissions of Vinyl files

gulpplugin, chmod, stat, file, vinyl, stream, permissions

readme

gulp-chmod

Change permissions of Vinyl files

Install

npm install --save-dev gulp-chmod

Usage

import gulp from 'gulp';
import chmod from 'gulp-chmod';

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

or

import gulp from 'gulp';
import chmod from 'gulp-chmod';

export 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(fileMode, directoryMode?)

fileMode

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 the same, you can simplify the object:

{
    read: true
}

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

directoryMode

Type: true | number | object

Same as fileMode, but applies to directories.

Specify true to use the same value as fileMode.

Tip

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

import gulp from 'gulp';
import chmod from 'gulp-chmod';
import gulpFilter from 'gulp-filter';

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

export 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'))
);