overleaf/libraries/settings/Settings.js
Jakob Ackermann acc65b2518 [misc] fix path to app config/ dir following the renaming of the package
The Settings.js file is now located in node_modules/@overleaf/settings,
 which is one level deeper than node_modules/settings-sharelatex.
2021-07-06 15:19:30 +01:00

50 lines
1.7 KiB
JavaScript

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.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`)) {
// 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 = [
process.cwd() + `/config/settings.${env}.js`,
path.normalize(__dirname + `/../../../config/settings.${env}.js`),
// TODO: remove these in the next major version
process.cwd() + `/config/settings.${env}.coffee`,
path.normalize(__dirname + `/../../../config/settings.${env}.coffee`)
];
}
for (let 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;