| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /* eslint-disable no-console */
- let defaults, possibleConfigFiles, settingsExist
- const fs = require('fs')
- const path = require('path')
- const env = (process.env.NODE_ENV || 'development').toLowerCase()
- const { merge } = require('./merge')
- const defaultSettingsPath = path.join(
- __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`)) {
- // TODO: remove this in the next major version
- throw new Error(
- `CoffeeScript settings file ${defaultSettingsPath}.coffee is no longer supported, please convert to JavaScript`
- )
- } else {
- defaults = {}
- settingsExist = false
- }
- if (process.env.SHARELATEX_CONFIG) {
- possibleConfigFiles = [process.env.SHARELATEX_CONFIG]
- } else {
- possibleConfigFiles = [
- path.join(process.cwd(), `config/settings.${env}.js`),
- path.join(__dirname, `../../../config/settings.${env}.js`),
- // TODO: remove these in the next major version
- path.join(process.cwd(), `config/settings.${env}.coffee`),
- path.join(__dirname, `../../../config/settings.${env}.coffee`),
- ]
- }
- for (const file of possibleConfigFiles) {
- if (fs.existsSync(file)) {
- // TODO: remove this in the next major version
- if (file.endsWith('.coffee')) {
- throw new Error(
- `CoffeeScript settings file ${file} is no longer supported, 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
|