Load and merge defaults if available

Load and merge defaults if available
This commit is contained in:
James Allen 2014-04-02 17:25:50 +01:00
parent 6baf4ebe85
commit c06e237e31

View file

@ -2,6 +2,24 @@ fs = require "fs"
path = require "path"
env = (process.env.NODE_ENV or "development").toLowerCase()
merge = (settings, defaults) ->
for key, value of settings
if typeof(value) == "object"
defaults[key] = merge(settings[key], defaults[key] or {})
else
defaults[key] = value
return defaults
defaultSettingsPath = path.normalize(__dirname + "/../../config/settings.defaults.coffee")
console.log "default settings", defaultSettingsPath
if fs.existsSync(defaultSettingsPath)
defaults = require(defaultSettingsPath)
settingsExist = true
else
defaults = {}
settingsExist = false
if process.env.SHARELATEX_CONFIG?
possibleConfigFiles = [process.env.SHARELATEX_CONFIG]
else
@ -12,8 +30,13 @@ else
for file in possibleConfigFiles
if fs.existsSync(file)
module.exports = require(file)
return
module.exports = merge(require(file), defaults)
settingsExist = true
break
console.log "No config file could be found at: ", possibleConfigFiles
throw new Error("No config file found")
if !settingsExist
console.warn "No settings or defaults found. I'm flying blind."
module.exports = defaults
console.log "Settings", module.exports