fly-shell v2.1.0
fly-shell 
Execute shell commands with Fly
Install
npm install --save-dev fly-shellAPI
.shell(command, options)
Both parameters are optional, but at least one must be present. Additionally, a command is required
command
Type: string
The shell command to run. You may also use options.cmd
During execution, any occurrences of $file or $glob will be replaced with the the relevant filepath or glob pattern.
options
Type: object
fly-shell uses execa as its child_process wrapper. This means it has the same options as child_process.exec and shares execa's additional options.
options.cmd
Type: string
Same as command. You may want to use this if you only want to specify an options object.
options.glob
Type: boolean
If the command should use the glob pattern within source(), you must set this to true or 1. See here for example.
Usage
Iterate Once Per File
You can apply a command to each file of your glob match.
Instances of $file will be replaced by the file's path.
exports.default = function * () {
yield this.source('src/*.js')
.shell('cat $file')
//=> fly-shell: console.log('this is src/a.js')
//=> fly-shell: console.log('this is src/b.js')
//=> fly-shell: console.log('this is src/c.js')
.dist('dist');
}Iterate Once Per Glob
You can use the current glob within your shell command.
Instances of $file will be replaced by the glob:
exports.default = function * () {
yield this.source('src/*.js')
.shell('cat $file', {glob: true})
//=> fly-shell:
//=> console.log('this is src/a.js')
//=> console.log('this is src/b.js')
//=> console.log('this is src/c.js')
.dist('dist');
yield this.source(['src/*.js', 'src/*.css'])
.shell({
cmd: 'cat $glob',
glob: true
})
//=> fly-shell:
//=> console.log('this is src/a.js')
//=> console.log('this is src/b.js')
//=> console.log('this is src/c.js')
//=> body{margin:0;}header{color:black}
//=> .hero{width:100%;height:400px}
.dist('dist');
}Passing Arguments
Of course, command arguments may be passed within your command string.
exports.default = function * () {
yield this.source('src')
.shell('ls -alh $file')
.dist('dist');
}License
MIT © Luke Edwards