UNPKG

statsd

Version:

Network daemon for the collection and aggregation of realtime application metrics

43 lines (31 loc) 995 B
/*jshint node:true, laxcomma:true */ const fs = require('fs') const util = require('util'); let Configurator = function (file) { let self = this; let config = {}; let oldConfig = {}; this.updateConfig = function () { util.log('[' + process.pid + '] reading config file: ' + file); fs.readFile(file, function (err, data) { if (err) { throw err; } old_config = self.config; self.config = eval('config = ' + data); self.emit('configChanged', self.config); }); }; this.updateConfig(); fs.watch(file, function (event, filename) { if (event == 'change' && self.config.automaticConfigReload != false) { self.updateConfig(); } }); }; util.inherits(Configurator, require('events').EventEmitter); exports.Configurator = Configurator; exports.configFile = function(file, callbackFunc) { let config = new Configurator(file); config.on('configChanged', function() { callbackFunc(config.config, config.oldConfig); }); };