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