Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50659 views
1
/*
2
* cli.js: Handlers for the foreverd CLI commands.
3
*
4
* (C) 2010 Nodejitsu Inc.
5
* MIT LICENCE
6
*
7
*/
8
9
var utile = require('utile'),
10
flatiron = require('flatiron'),
11
optimist = require('optimist'),
12
forever = require('../../forever'),
13
Service = require('./service'),
14
argv;
15
16
var cli = exports;
17
18
var app = flatiron.app;
19
20
app.use(flatiron.plugins.cli, {
21
usage: forever.cli.usage
22
});
23
24
app.config.argv().env();
25
26
var service = new Service({
27
adapter: optimist.argv.adapter
28
});
29
30
app.cmd('install', cli.install = function () {
31
service.install(function onInstall(err) {
32
if (err) {
33
forever.log.error(err);
34
}
35
else {
36
forever.log.info('foreverd installed');
37
}
38
});
39
});
40
41
//TODO
42
app.cmd('run', cli.run = function () {
43
service.load(function () {
44
service.run();
45
});
46
});
47
48
app.cmd('uninstall', cli.uninstall = function () {
49
service.uninstall();
50
});
51
52
app.cmd(/add (.*)/, cli.add = function (file) {
53
service.add(file, forever.cli.getOptions(file));
54
});
55
56
//TODO
57
app.cmd(/remove (.*)/, cli.remove = function (file) {
58
service.remove(file, forever.cli.getOptions(file));
59
});
60
61
app.cmd('start', cli.start = function () {
62
service.start();
63
});
64
65
//TODO
66
app.cmd('stop', cli.stop = function () {
67
service.stop();
68
});
69
70
app.cmd('restart', cli.restart = function () {
71
service.restart();
72
});
73
74
app.cmd('list', cli.list = function () {
75
service.list(function (err, applications) {
76
if (err) {
77
app.log.error('Error running command: ' + 'list'.magenta);
78
app.log.error(err.message);
79
err.stack && err.stack.split('\n').forEach(function (line) {
80
app.log.error(line);
81
})
82
return;
83
}
84
85
applications.forEach(function printApplication(application) {
86
console.log(application.monitor.uid, application.monitor.command, application.file, application.monitor.child.pid, application.monitor.logFile, application.monitor.pidFile);
87
});
88
});
89
});
90
91
app.cmd('pause', cli.pause = function () {
92
service.pause();
93
});
94
95
app.cmd('resume', cli.resume = function () {
96
service.resume();
97
});
98
99
cli.startCLI = function () {
100
app.start();
101
};
102
103
104