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