fly-shell
Execute shell commands with Fly
Install
npm install --save-dev fly-shell
API
.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 { thissource'src/*.js' //=> 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') ;}
Iterate Once Per Glob
You can use the current glob within your shell command.
Instances of $file
will be replaced by the glob:
exports { thissource'src/*.js' //=> fly-shell: //=> console.log('this is src/a.js') //=> console.log('this is src/b.js') //=> console.log('this is src/c.js') ; thissource'src/*.js' 'src/*.css' //=> 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} ;}
Passing Arguments
Of course, command arguments may be passed within your command string.
exports { thissource'src' ;}
License
MIT © Luke Edwards