Your `preflight` parameter can wither be an array of commands, or path to a shell script. This will run before every `start` commands.
Optionally you could include a `redeploy_path` in your config file:
```json
{
"start": "node index.js",
"preflight": "./preflight.sh",
"redeploy_path": "./REDEPLOY"
}
```
This will look for the file named `REDEPLOY` in your rood directory and watch that file. If the file is changed the application will be restarted, ie it will run the `preflight` command(s) and `start` command. If you ommit the `redeploy_path` a file named `REDEPLOY` will be created in your root directory.
You can change the name and path of the `redeploy_path`, just make sure the path is correct and the file name exists in the named path. Example:
```json
{
"start": "node index.js",
"preflight": "./preflight.sh",
"redeploy_path": "./deploy/trigger.txt"
}
```
_NOTE:_ This also works for other languages, example:
```json
{
"start": "python app.py",
"preflight": "./preflight.sh"
}
```
This app just runs whatever command you send it in an isolated child process, the command will be run as if being run in a terminal.
-**`port`**: _string | number | (string | number)[]_: _Optional_: A port(or array of ports) to kill if running a server. _NOTE_: it is important to provide this option if running a server else the process may not terminate properly
For continuos deployment and integration there needs to be a text file located in your project which the application can watch. Any time the content of this file is changed the application will rebuild and rerun your `start` command.