command-runner v0.2.2
command-runner
A simple command runner, inspired from Whiskey process runner.
Installation
npm install -g command-runnerThis will install the command-runner module globally and add the cr  cli tool to your PATH.
Usage
cr --config filename.json [--debug]Configuration file
This JSON file is used to specify all the commands to run asynchronously.
Example configuration file :
{
  "http-server": {
    "cmd": [ "http-server", "-p", "8000", "./" ],
    "log": {
      "type": "file",
      "options": {
        "name": "http-server.log"
      }
    },
    "wait": {
      "type": "socket",
      "options": {
        "host": "127.0.0.1",
        "port": "8000",
        "timeout": "3000"
      }
    }
  },
  "localtunnel": {
    "cmd": [ "lt", "--port", "8000" ],
    "wait": {
      "type": "output",
      "options": {
        "match": "your url is:",
        "timeout": "3000"
      }
    }
  },
  "test": {
    "cmd": [ "tape", "tests/**/*.js" ],
    "depends": [ "http-server", "localtunnel" ],
    "log": {
      "type": "output"
    },
    "exit_on_success": true
  }
}Options
| Name | Type | Required | Description | 
|---|---|---|---|
| cmd | Array | yes | The command to run | 
| cwd | string | no | The command working directory. Default is current directory. | 
| depends | Array | no | The names of command dependencies. Name must be defined in configuration. | 
| log | Object | no | The command output log configuration. | 
| wait | Object | no | The command start wait condition configuration. | 
| exit_on_success | boolean | no | Indicate if runner gracefully exit if the command terminate with zero exit code. Default is false. | 
| abort_on_error | boolean | no | Indicate if runner gracefully abort if the command terminate with non-zero exit code. Default is true. | 
"log" configuration object
| Name | Type | Required | Description | 
|---|---|---|---|
| type | string | yes | The output log type : file,output,stdoutorstderr. | 
| options | Object | no | The output log options. | 
output: respectively redirect command process stdout and stderr to runner stdout and stderr. Has no options.
stdout: redirect only command process stdout to runner stdout. Has no options.
stderr: redirect only command process stderr to runner stderr. Has no options.
file: redirect command process output to a file using the following options :
| Name | Type | Required | Description | 
|---|---|---|---|
| name | string | yes | The filename. | 
| input | string | no | The stream input : output,stdoutorstderr. Default isoutput. | 
| stream_options | Object | no | The fs.createStream options. | 
fs.createStream default behavious is open file for writing. The file is created (if it does not exist) or truncated (if it exists). To append, just set stream_options to {"flags": "a"}.
"wait" configuration object
| Name | Type | Required | Description | 
|---|---|---|---|
| type | string | yes | The wait condition type : output,socket,done, ortimer. | 
| options | Object | no | The wait condition options. | 
output: wait for an output string (stdout and stderr) to match using the following options :
| Name | Type | Required | Description | 
|---|---|---|---|
| match | string | yes | The string to match. | 
| timeout | number | no | The wait timeout in milliseconds. Default is 10000. | 
socket: wait for a socket using the following options :
| Name | Type | Required | Description | 
|---|---|---|---|
| port | number | yes | The port number. | 
| host | string | no | The hostname or ip address. Default is localhost | 
| timeout | number | no | The wait timeout in milliseconds. Default is 10000. | 
| interval | number | no | The connect retry interval in milliseconds. Default is 200. | 
done: wait for a process to run and exit with success code using the following options :
| Name | Type | Required | Description | 
|---|---|---|---|
| timeout | number | no | The wait timeout in milliseconds. Must be greater than or equal to 100. | 
timer: wait for a timer duration using the following options :
| Name | Type | Required | Description | 
|---|---|---|---|
| duration | number | yes | The wait duration in milliseconds. Must be greater than or equal to 100. |