https://github.com/statsd/statsd
Raw File
Tip revision: d1f8b8f828e9614cc43d2e5803d05bdf21ac9ce5 authored by Daniel Schauenberg on 14 May 2012, 22:56:51 UTC
bump to v0.2.1
Tip revision: d1f8b8f
config.js
var fs  = require('fs')
  , util = require('util')

var Configurator = function (file) {

  var self = this;
  var config = {};
  var oldConfig = {};

  this.updateConfig = function () {
    util.log('reading config file: ' + file);

    fs.readFile(file, function (err, data) {
      if (err) { throw err; }
      old_config = self.config;

      self.config = eval('config = ' + fs.readFileSync(file));
      self.emit('configChanged', self.config);
    });
  };

  this.updateConfig();

  fs.watchFile(file, function (curr, prev) {
    if (curr.ino != prev.ino) { self.updateConfig(); }
  });
};

util.inherits(Configurator, process.EventEmitter);

exports.Configurator = Configurator;

exports.configFile = function(file, callbackFunc) {
  var config = new Configurator(file);
  config.on('configChanged', function() {
    callbackFunc(config.config, config.oldConfig);
  });
};

back to top