1 var fs
= require('fs'),
2 WebListener
= require('./web.js').WebListener
;
6 var config_filename
= 'config.json',
7 config_dirs
= ['/etc/kiwiirc/', __dirname
+ '/'];
9 var config
= Object
.create(null);
10 for (var i
in config_dirs
) {
12 if (fs
.lstatSync(config_dirs
[i
] + config_filename
).isDirectory() === false) {
13 config
= JSON
.parse(fs
.readFileSync(config_dirs
[i
] + config_filename
, 'utf-8'));
14 console
.log('Loaded config file ' + config_dirs
[i
] + config_filename
);
19 case 'ENOENT': // No file/dir
22 console
.log('An error occured parsing the config file ' + config_dirs
[i
] + config_filename
+ ': ' + e
.message
);
29 if (Object
.keys(config
).length
=== 0) {
30 console
.log('Couldn\'t find a valid config file!');
34 if ((!config
.servers
) || (config
.servers
.length
< 1)) {
35 console
.log('No servers defined in config file');
39 //Create web listeners
42 _
.each(config
.servers
, function (server
) {
43 var wl
= new WebListener(server
, config
.transports
);
44 wl
.on('connection', function (client
) {
47 wl
.on('destroy', function (client
) {
48 clients
= _
.reject(clients
, function (c
) {
56 process
.title
= 'Kiwi IRC';
59 if ((config
.user
) && (config
.user
!== '')) {
60 process
.setuid(config
.user
);
62 if ((config
.group
) && (config
.group
!== '')) {
63 process
.setgid(config
.group
);
67 process
.stdin
.resume();
68 process
.stdin
.on('data', function (data
) {
69 console
.log(data
.toString());