Allow externally specified config

This commit is contained in:
Max Metral
2016-11-21 14:58:39 -05:00
parent efc570e5a9
commit ecda18029f

View File

@@ -23,7 +23,9 @@ module.exports = {
Server: Server Server: Server
} }
function Server(insecureAccess) { function Server(insecureAccess, opts) {
opts = opts || {};
// Setup Accessory Cache Storage // Setup Accessory Cache Storage
accessoryStorage.initSync({ dir: User.cachedAccessoryPath() }); accessoryStorage.initSync({ dir: User.cachedAccessoryPath() });
@@ -46,7 +48,7 @@ function Server(insecureAccess) {
}.bind(this)); }.bind(this));
this._plugins = this._loadPlugins(); // plugins[name] = Plugin instance this._plugins = this._loadPlugins(); // plugins[name] = Plugin instance
this._config = this._loadConfig(); this._config = opts.config || this._loadConfig();
this._cachedPlatformAccessories = this._loadCachedPlatformAccessories(); this._cachedPlatformAccessories = this._loadCachedPlatformAccessories();
this._bridge = this._createBridge(); this._bridge = this._createBridge();
@@ -55,7 +57,7 @@ function Server(insecureAccess) {
this._publishedCameras = {}; this._publishedCameras = {};
this._setupManager = new BridgeSetupManager(); this._setupManager = new BridgeSetupManager();
this._setupManager.on('newConfig', this._handleNewConfig.bind(this)); this._setupManager.on('newConfig', this._handleNewConfig.bind(this));
this._setupManager.on('requestCurrentConfig', function(callback) { this._setupManager.on('requestCurrentConfig', function(callback) {
callback(this._config); callback(this._config);
}.bind(this)); }.bind(this));
@@ -93,7 +95,7 @@ Server.prototype.run = function() {
Server.prototype._publish = function() { Server.prototype._publish = function() {
// pull out our custom Bridge settings from config.json, if any // pull out our custom Bridge settings from config.json, if any
var bridgeConfig = this._config.bridge || {}; var bridgeConfig = this._config.bridge || {};
var info = this._bridge.getService(Service.AccessoryInformation); var info = this._bridge.getService(Service.AccessoryInformation);
if (bridgeConfig.manufacturer) if (bridgeConfig.manufacturer)
info.setCharacteristic(Characteristic.Manufacturer, bridgeConfig.manufacturer); info.setCharacteristic(Characteristic.Manufacturer, bridgeConfig.manufacturer);
@@ -168,7 +170,7 @@ Server.prototype._loadConfig = function() {
// Complain and exit if it doesn't exist yet // Complain and exit if it doesn't exist yet
if (!fs.existsSync(configPath)) { if (!fs.existsSync(configPath)) {
log.warn("config.json (%s) not found.", configPath); log.warn("config.json (%s) not found.", configPath);
var config = {}; var config = {};
config.bridge = { config.bridge = {
@@ -427,7 +429,7 @@ Server.prototype._handleRegisterPlatformAccessories = function(accessories) {
accessory._prepareAssociatedHAPAccessory(); accessory._prepareAssociatedHAPAccessory();
hapAccessories.push(accessory._associatedHAPAccessory); hapAccessories.push(accessory._associatedHAPAccessory);
this._cachedPlatformAccessories.push(accessory); this._cachedPlatformAccessories.push(accessory);
} }
@@ -513,7 +515,7 @@ Server.prototype._handleNewConfig = function(type, name, replace, config) {
} else { } else {
var targetName; var targetName;
if (name.indexOf('.') !== -1) { if (name.indexOf('.') !== -1) {
targetName = name.split(".")[1]; targetName = name.split(".")[1];
} }
var found = false; var found = false;
for (var index in this._config.accessories) { for (var index in this._config.accessories) {
@@ -545,7 +547,7 @@ Server.prototype._handleNewConfig = function(type, name, replace, config) {
} else { } else {
var targetName; var targetName;
if (name.indexOf('.') !== -1) { if (name.indexOf('.') !== -1) {
targetName = name.split(".")[1]; targetName = name.split(".")[1];
} }
var found = false; var found = false;