diff --git a/README.md b/README.md index e69de29b..e6e3be77 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,66 @@ +# forever + +A simple CLI tool for ensuring that a given script runs continuously (i.e. forever). + +## Installation + +### Installing npm (node package manager) +
+  curl http://npmjs.org/install.sh | sh
+
+ +### Installing http-agent +
+  [sudo] npm install forever
+
+ +## Usage +There are two distinct ways to use forever: through the command line interface, or by requiring the forever module in your own code. + +### Using forever from the command line +You can use forever to run any kind of script continuously (whether it is written in node.js or not). The usage options are simple: + +
+  usage: forever [FILE, ...] [options]
+
+  options:
+    -m MAX            Only run the specified script MAX times
+    -s, --silent      Run the child script silencing stdout and stderr
+    -h, --help        You're staring at it
+
+ +There are several samples designed to test the fault tolerance of forever. Here's a simple example: + +
+  forever samples/error-on-timer.js -m 5
+
+ +### Using forever from node.js +You can also use forever from inside your own node.js code. + +
+  var forever = require('forever');
+  
+  var child = new (forever.Forever)('your-filename.js'), {
+    max: 3,
+    silent: true,
+    options: []
+  });
+  
+  child.on('exit', this.callback);
+  child.run();
+
+ +Each forever object is an instance of the node.js core EventEmitter. There are several core events that you can listen for: + +* restart [err, forever]: Raised each time the target script is restarted +* exit [err, forever]: Raised when the call to forever.run() completes +* stdout [err, data]: Raised when data is received from the child process' stdout +* stderr [err, data]: Raised when data is received from the child process' stderr + +## Run Tests +
+  vows test/*-test.js --spec
+
+ +#### Author: [Charlie Robbins](http://www.charlierobbins.com); \ No newline at end of file diff --git a/lib/forever.js b/lib/forever.js index 798e8702..5272f2bd 100644 --- a/lib/forever.js +++ b/lib/forever.js @@ -16,6 +16,8 @@ var Forever = function (file, options) { this.times = 0; options.options.unshift(path.join(__dirname, file)); + options.silent = options.silent || false; + options.forever = options.forever || false; this.options = options; }; diff --git a/package.json b/package.json index 0457735c..b7d5b9ea 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ }, "keywords": ["cli", "fault tolerant", "sysadmin", "tools"], "dependencies": { - "optimist": ">= 0.0.3" + "optimist": ">= 0.0.3", + "vows": ">= 0.5.1" }, "bin": { "forever": "./bin/forever" }, "main": "./lib/forever",