Move and rename `server/server.js` to `server/helpers/launcher.js`
[KiwiIRC.git] / server / helpers / launcher.js
1 var kiwi_app = '../kiwi.js';
2 var pidfile = '../../kiwiirc.pid';
3 var pidfile_arg;
4
5 // Check if a pidfile has been set as an argument
6 if (process.argv.indexOf('-p') > -1) {
7 pidfile_arg = process.argv[process.argv.indexOf('-p') + 1];
8
9 if (pidfile_arg) {
10 // Don't set the relative path if we have an absolute path given to us
11 if (['/', '\\', '.'].indexOf(pidfile_arg[0]) === -1) {
12 pidfile = '../../' + pidfile_arg;
13 } else {
14 pidfile = pidfile_arg;
15 }
16 }
17 }
18
19
20 var daemon = require('daemonize2').setup({
21 main: kiwi_app,
22 name: 'kiwiirc',
23 pidfile: pidfile
24 });
25
26 switch (process.argv[2]) {
27 case '-f':
28 require(kiwi_app);
29 break;
30
31 case 'start':
32 daemon.start();
33 break;
34
35 case 'stop':
36 daemon.stop();
37 break;
38
39 case 'restart':
40 daemon.stop(function(err) {
41 daemon.start();
42 });
43 break;
44
45 case 'status':
46 var pid = daemon.status();
47 if (pid)
48 console.log('Daemon running. PID: ' + pid);
49 else
50 console.log('Daemon is not running.');
51 break;
52
53 case 'reconfig':
54 console.log('Loading new config..');
55 daemon.sendSignal("SIGUSR1");
56 break;
57
58 case 'stats':
59 console.log('Writing stats to log file..');
60 daemon.sendSignal("SIGUSR2");
61 break;
62
63 case 'build':
64 require('./build.js');
65 break;
66
67 default:
68 console.log('Usage: [-f|start|stop|restart|status|reconfig|build [-c <config file>] [-p <pid file>]]');
69 }