Settings.coffee 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. fs = require "fs"
  2. path = require "path"
  3. env = (process.env.NODE_ENV or "development").toLowerCase()
  4. merge = (settings, defaults) ->
  5. for key, value of settings
  6. if typeof(value) == "object"
  7. defaults[key] = merge(settings[key], defaults[key] or {})
  8. else
  9. defaults[key] = value
  10. return defaults
  11. defaultSettingsPath = path.normalize(__dirname + "/../../config/settings.defaults.coffee")
  12. console.log "default settings", defaultSettingsPath
  13. if fs.existsSync(defaultSettingsPath)
  14. defaults = require(defaultSettingsPath)
  15. settingsExist = true
  16. else
  17. defaults = {}
  18. settingsExist = false
  19. if process.env.SHARELATEX_CONFIG?
  20. possibleConfigFiles = [process.env.SHARELATEX_CONFIG]
  21. else
  22. possibleConfigFiles = [
  23. process.cwd() + "/config/settings.#{env}.coffee"
  24. path.normalize(__dirname + "/../../config/settings.#{env}.coffee")
  25. ]
  26. for file in possibleConfigFiles
  27. if fs.existsSync(file)
  28. module.exports = merge(require(file), defaults)
  29. settingsExist = true
  30. break
  31. if !settingsExist
  32. console.warn "No settings or defaults found. I'm flying blind."
  33. module.exports = defaults