1 var fs
= require('fs'),
2 _
= require('underscore'),
3 WebListener
= require('./web.js').WebListener
;
7 var config_filename
= 'config.json',
8 config_dirs
= ['/etc/kiwiirc/', __dirname
+ '/'];
10 var config
= Object
.create(null);
11 for (var i
in config_dirs
) {
13 if (fs
.lstatSync(config_dirs
[i
] + config_filename
).isDirectory() === false) {
14 config
= JSON
.parse(fs
.readFileSync(config_dirs
[i
] + config_filename
, 'utf-8'));
15 console
.log('Loaded config file ' + config_dirs
[i
] + config_filename
);
20 case 'ENOENT': // No file/dir
23 console
.log('An error occured parsing the config file ' + config_dirs
[i
] + config_filename
+ ': ' + e
.message
);
30 if (Object
.keys(config
).length
=== 0) {
31 console
.log('Couldn\'t find a valid config file!');
35 if ((!config
.servers
) || (config
.servers
.length
< 1)) {
36 console
.log('No servers defined in config file');
40 //Create web listeners
43 _
.each(config
.servers
, function (server
) {
44 var wl
= new WebListener(server
, config
.transports
);
45 wl
.on('connection', function (client
) {
48 wl
.on('destroy', function (client
) {
49 clients
= _
.reject(clients
, function (c
) {
57 process
.title
= 'Kiwi IRC';
60 if ((config
.user
) && (config
.user
!== '')) {
61 process
.setuid(config
.user
);
63 if ((config
.group
) && (config
.group
!== '')) {
64 process
.setgid(config
.group
);
68 process
.stdin
.resume();
69 process
.stdin
.on('data', function (data
) {
70 console
.log(data
.toString());