| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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" and value not instanceof Array
- defaults[key] = merge(settings[key], defaults[key] or {})
- else
- defaults[key] = value
- return defaults
- defaultSettingsPath = path.normalize(__dirname + "/../../config/settings.defaults")
- if fs.existsSync("#{defaultSettingsPath}.js")
- console.log "Using default settings from #{defaultSettingsPath}.js"
- defaults = require("#{defaultSettingsPath}.js")
- settingsExist = true
- else if fs.existsSync("#{defaultSettingsPath}.coffee")
- console.warn "CoffeeScript settings file #{defaultSettingsPath}.coffee is deprecated, please convert to JavaScript"
- console.log "Using default settings from #{defaultSettingsPath}.coffee"
- defaults = require("#{defaultSettingsPath}.coffee")
- settingsExist = true
- else
- defaults = {}
- settingsExist = false
- if process.env.SHARELATEX_CONFIG?
- possibleConfigFiles = [process.env.SHARELATEX_CONFIG]
- else
- possibleConfigFiles = [
- process.cwd() + "/config/settings.#{env}.js"
- path.normalize(__dirname + "/../../config/settings.#{env}.js")
- process.cwd() + "/config/settings.#{env}.coffee"
- path.normalize(__dirname + "/../../config/settings.#{env}.coffee")
- ]
- for file in possibleConfigFiles
- if fs.existsSync(file)
- if file.endsWith('.coffee')
- console.warn "CoffeeScript settings file #{file} is deprecated, please convert to JavaScript"
- console.log "Using settings from " + file
- module.exports = merge(require(file), defaults)
- settingsExist = true
- break
- if !settingsExist
- console.warn "No settings or defaults found. I'm flying blind."
- module.exports = defaults
|