Skip to content

Commit e0c3dcf

Browse files
committed
[dist] Minor style updates. Update to use pkginfo
1 parent de0d6d2 commit e0c3dcf

File tree

5 files changed

+113
-44
lines changed

5 files changed

+113
-44
lines changed

inspect-emitters.js

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
(function (global, undefined) {
2+
"use strict";
3+
4+
var path = require('path');
5+
6+
console.log("nodejs module path: ", require.paths);
7+
console.log("");
8+
9+
//get the forever module
10+
var forever = require("./lib/forever"),
11+
emitter = path.join(__dirname, 'examples', 'server.js'),
12+
child;
13+
14+
console.log("");
15+
console.log("get the list:");
16+
console.log("forever.list(true)", forever.list(true));
17+
console.log("forever.list(false).length", (forever.list(false) || []).length);
18+
19+
console.log("");
20+
console.log("Start emitter.js");
21+
22+
child = new (forever.Forever)(emitter, { options: ['-p', '8080'] });
23+
24+
//extend
25+
child.__old__emit = child.emit;
26+
child.emit = function () {
27+
var eventname = arguments[0],
28+
list;
29+
30+
if (eventname != "newListener") {
31+
list = forever.list(false) || [];
32+
console.log(":: emiting: " + arguments[0]);
33+
console.log(":: processors: ", list.length);
34+
}
35+
36+
//console.dir(new Error().stack.split('\n'));
37+
return this.__old__emit.apply(this, arguments);
38+
};
39+
40+
child.on("start", function () {
41+
console.log("> emitter.js emits start");
42+
console.log("> > forever.list(true)", forever.list(true));
43+
console.log("> > forever.list(false).length", (forever.list(false) || []).length);
44+
console.log("> stop emmiter.js");
45+
child.stop();
46+
});
47+
child.on("stop", function () {
48+
console.log("> emitter.js emits stop");
49+
console.log("> > forever.list(true)", forever.list(true));
50+
console.log("> > forever.list(false).length", (forever.list(false) || []).length);
51+
});
52+
child.start();
53+
54+
})(global);

lib/forever.js

+54-40
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,32 @@
66
*
77
*/
88

9-
require.paths.unshift(__dirname);
10-
119
var fs = require('fs'),
12-
colors = require('colors'),
13-
async = require('async'),
1410
path = require('path'),
1511
events = require('events'),
1612
exec = require('child_process').exec,
17-
timespan = require('timespan'),
13+
async = require('async'),
14+
colors = require('colors'),
15+
daemon = require('daemon'),
1816
nconf = require('nconf'),
19-
daemon = require('daemon');
17+
timespan = require('timespan');
2018

2119
var forever = exports;
2220

2321
//
2422
// ### Export Components / Settings
2523
// Export `version` and important Prototypes from `lib/forever/*`
2624
//
27-
forever.version = [0, 4, 0];
2825
forever.initialized = false;
2926
forever.root = path.join(process.env.HOME, '.forever');
3027
forever.config = new nconf.stores.File({ file: path.join(forever.root, 'config.json') });
31-
forever.cli = require('forever/cli');
32-
forever.Forever = forever.Monitor = require('forever/monitor').Monitor;
28+
forever.cli = require('./forever/cli');
29+
forever.Forever = forever.Monitor = require('./forever/monitor').Monitor;
30+
31+
//
32+
// Expose version through `pkginfo`
33+
//
34+
require('pkginfo')(module, 'version');
3335

3436
//
3537
// ### function load (options, [callback])
@@ -59,9 +61,7 @@ forever.load = function (options) {
5961
// Try to load the forever `config.json` from
6062
// the specified location.
6163
//
62-
try {
63-
forever.config.loadSync();
64-
}
64+
try { forever.config.loadSync() }
6565
catch (ex) { }
6666

6767
forever.config.set('root', options.root);
@@ -74,7 +74,7 @@ forever.load = function (options) {
7474
// the setup of forever dramatically.
7575
//
7676
function tryCreate (dir) {
77-
try { fs.mkdirSync(dir, 0755); }
77+
try { fs.mkdirSync(dir, 0755) }
7878
catch (ex) { }
7979
}
8080

@@ -84,9 +84,7 @@ forever.load = function (options) {
8484
//
8585
// Attempt to save the new `config.json` for forever
8686
//
87-
try {
88-
forever.config.saveSync();
89-
}
87+
try { forever.config.saveSync() }
9088
catch (ex) { }
9189

9290
forever.initialized = true;
@@ -116,15 +114,18 @@ forever.stat = function (logFile, script, callback) {
116114
}
117115

118116
fs.stat(script, function (err, stats) {
119-
if (err) return realCallback(new Error('script ' + script + ' does not exist.'));
120-
121-
if (logAppend) {
122-
realCallback(null);
123-
return;
117+
if (err) {
118+
return realCallback(new Error('script ' + script + ' does not exist.'));
119+
}
120+
else if (logAppend) {
121+
return realCallback(null);
124122
}
125123

126124
fs.stat(logFile, function (err, stats) {
127-
if (!err) return realCallback(new Error('log file ' + logFile + ' exists.'));
125+
if (!err) {
126+
return realCallback(new Error('log file ' + logFile + ' exists.'));
127+
}
128+
128129
realCallback(null);
129130
});
130131
});
@@ -149,10 +150,13 @@ forever.start = function (script, options) {
149150
forever.startDaemon = function (script, options) {
150151
options.logFile = forever.logFilePath(options.logFile);
151152
options.pidFile = forever.pidFilePath(options.pidFile);
153+
152154
var runner = new forever.Monitor(script, options);
153155

154156
fs.open(options.logFile, options.appendLog ? 'a+' : 'w+', function (err, fd) {
155-
if (err) return runner.emit('error', err);
157+
if (err) {
158+
return runner.emit('error', err);
159+
}
156160

157161
var pid = daemon.start(fd);
158162
daemon.lock(options.pidFile);
@@ -184,8 +188,9 @@ forever.stop = function (target, format, restart) {
184188
processes = getAllProcesses(),
185189
results = [];
186190

187-
var procs = /(\d+)/.test(target) ? forever.findByIndex(target, processes)
188-
: forever.findByScript(target, processes);
191+
var procs = /(\d+)/.test(target)
192+
? forever.findByIndex(target, processes)
193+
: forever.findByScript(target, processes);
189194

190195
if (procs && procs.length > 0) {
191196
procs.forEach(function (proc) {
@@ -336,7 +341,9 @@ forever.list = function (format, procs) {
336341
var formatted = [];
337342

338343
procs = procs || getAllProcesses();
339-
if (!procs) return null;
344+
if (!procs) {
345+
return null;
346+
}
340347

341348
if (format) {
342349
var index = 0, maxLen = 0;
@@ -454,6 +461,7 @@ forever.randomString = function (bits) {
454461
ret+=chars[0x3F & rand >>> i];
455462
}
456463
}
464+
457465
return ret;
458466
};
459467

@@ -463,11 +471,9 @@ forever.randomString = function (bits) {
463471
// Determines the full logfile path name
464472
//
465473
forever.logFilePath = function(logFile, uid) {
466-
if (logFile && logFile[0] === '/') {
467-
return logFile;
468-
} else {
469-
return path.join(forever.config.get('root'), logFile || (uid || 'forever') + '.log');
470-
}
474+
return logFile && logFile[0] === '/'
475+
? logFile
476+
: path.join(forever.config.get('root'), logFile || (uid || 'forever') + '.log');
471477
};
472478

473479
//
@@ -476,11 +482,9 @@ forever.logFilePath = function(logFile, uid) {
476482
// Determines the full pid file path name
477483
//
478484
forever.pidFilePath = function(pidFile) {
479-
if (pidFile && pidFile[0] === '/') {
480-
return pidFile;
481-
} else {
482-
return path.join(forever.config.get('pidPath'), pidFile);
483-
}
485+
return pidFile && pidFile[0] === '/'
486+
? pidFile
487+
: path.join(forever.config.get('pidPath'), pidFile);
484488
};
485489

486490
//
@@ -495,7 +499,10 @@ function checkProcess (pid, callback) {
495499
}
496500

497501
exec('ps ' + pid + ' | grep -v PID', function (err, stdout, stderr) {
498-
if (err) return callback(false);
502+
if (err) {
503+
return callback(false);
504+
}
505+
499506
callback(stdout.indexOf(pid) !== -1);
500507
});
501508
};
@@ -529,7 +536,9 @@ function getAllProcesses (findDead) {
529536
var results = [], processes = {},
530537
files = fs.readdirSync(forever.config.get('pidPath'));
531538

532-
if (files.length === 0) return null;
539+
if (files.length === 0) {
540+
return null;
541+
}
533542

534543
files.forEach(function (file) {
535544
try {
@@ -562,8 +571,13 @@ function getAllProcesses (findDead) {
562571
});
563572

564573
Object.keys(processes).forEach(function (key) {
565-
if (!processes[key].pid && !findDead) return;
566-
else if (!processes[key].pid) processes[key].dead = true;
574+
if (!processes[key].pid && !findDead) {
575+
return;
576+
}
577+
else if (!processes[key].pid) {
578+
processes[key].dead = true;
579+
}
580+
567581
results.push(processes[key]);
568582
});
569583

lib/forever/cli.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ var sys = require('sys'),
1010
path = require('path'),
1111
eyes = require('eyes'),
1212
winston = require('winston'),
13-
forever = require('forever');
13+
forever = require('../forever');
1414

1515
var cli = exports;
1616

lib/forever/monitor.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ var sys = require('sys'),
1212
events = require('events'),
1313
spawn = require('child_process').spawn,
1414
winston = require('winston'),
15-
forever = require('forever');
15+
forever = require('../forever');
1616

1717
//
1818
// ### function Monitor (script, options)

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@
2929
"colors": "0.x.x",
3030
"eyes": "0.1.x",
3131
"daemon": "0.3.x",
32+
"nconf": "0.x.x",
3233
"optimist": "0.2.x",
34+
"pkginfo": "0.x.x",
3335
"timespan": "2.0.x",
34-
"winston": "0.3.x",
35-
"nconf": "0.x.x"
36+
"winston": "0.3.x"
3637
},
3738
"devDependencies": {
3839
"vows": "0.5.x"

0 commit comments

Comments
 (0)