Nuptial Predicament Mediation
    Have ideas to improve npm?Join in the discussion! »

    fs-chmod

    1.0.6 • Public • Published

    Build Status Coverage

    fs-chmod

    A drop-in replacement of fs.chmod with +x support.

    • supports finer-grained symbolic modes, such as +x, ug+rw, and etc.
    • supports mode object to make the mode better described.

    Install

    $ npm i fs-chmod

    Usage

    const {
      chmod,
      chmodSync,
      parse 
    = require('fs-chmod')
     
    chmod('/path/to/file.js', '+x').then(() => {
      console.log('done')
    })
     
    chmodSync.sync('/path/to/file.js', 'a+x')

    chmod(path, mode): Promise

    chmod(path, mode, callback): void

    chmodSync(path, mode): void

    • path string | Buffer | URL the same as vanilla fs.chmod
    • mode integer | Mode | string
    • callback Function(error?)

    Changes the permissions of a file.

    parse(str): Mode

    • str string Symbolic notation string of file system permissions

    Parses the symbolic notation string, such as +x, ug+rwx into an object of the interface Mode(see below)

    const mode = parse('u+x')
     
    console.log(mode.owner.execute)  // true
    console.log(mode.owner.read)     // false
    console.log(mode.group)         // undefined

    mode

    mode integer

    The same as the the second parameter of vanilla fs.chmod.

    PAY ATTENTION that mode should be an octal number.

    chmodSync('/path/to/file', 0o777)  // ✅ Correct~
    chmodSync('/path/to/file', 777)    // ❌ WRONG!

    mode object<Mode>

    interface Permission {
      read?: boolean
      write?: boolean
      execute?: boolean
    }
     
    interface Mode {
      owner?: Permission
      group?: Permission
      others?: Permission
      setuid?: boolean
      setgid?: boolean
      sticky?: boolean
    }

    For details, see symbolic modes

    # bash 
    chmod ug+rst /path/to/file

    is equivalent to

    chmodSync('path/to/file', 'ug+rst')
     
    // or
    chmodSync('path/to/file', {
      owner: {
        read: true
      },
      group: {
        read: true
      },
      setuid: true,
      setgid: true,
      sticky: true
    })

    mode string

    [references][operator][modes]
    
    • Supported references: u, g, o, a
    • Supported operators: +, =, -
    • Supported modes:
      • r, w, x
      • s: setuid/setgid
      • t: sticky

    License

    MIT

    Install

    npm i fs-chmod

    DownloadsWeekly Downloads

    9

    Version

    1.0.6

    License

    MIT

    Unpacked Size

    10.3 kB

    Total Files

    6

    Last publish

    Collaborators

    • avatar