mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Fix .config.json unit tests
This commit is contained in:
@@ -15,7 +15,6 @@
|
||||
**/
|
||||
|
||||
var fs = require('fs-extra');
|
||||
var when = require('when');
|
||||
var fspath = require("path");
|
||||
|
||||
var log = require("@node-red/util").log; // TODO: separate module
|
||||
@@ -29,6 +28,11 @@ var projects = require("./projects");
|
||||
var initialFlowLoadComplete = false;
|
||||
var settings;
|
||||
|
||||
function checkForConfigFile(dir) {
|
||||
return fs.existsSync(fspath.join(dir,".config.json")) ||
|
||||
fs.existsSync(fspath.join(dir,".config.nodes.json"))
|
||||
}
|
||||
|
||||
var localfilesystem = {
|
||||
init: function(_settings, runtime) {
|
||||
settings = _settings;
|
||||
@@ -36,34 +40,24 @@ var localfilesystem = {
|
||||
var promises = [];
|
||||
|
||||
if (!settings.userDir) {
|
||||
try {
|
||||
fs.statSync(fspath.join(process.env.NODE_RED_HOME,".config.json"));
|
||||
settings.userDir = process.env.NODE_RED_HOME;
|
||||
} catch(err) {
|
||||
try {
|
||||
// Consider compatibility for older versions
|
||||
if (process.env.HOMEPATH) {
|
||||
fs.statSync(fspath.join(process.env.HOMEPATH,".node-red",".config.json"));
|
||||
settings.userDir = fspath.join(process.env.HOMEPATH,".node-red");
|
||||
}
|
||||
} catch(err) {
|
||||
}
|
||||
if (!settings.userDir) {
|
||||
settings.userDir = fspath.join(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH || process.env.NODE_RED_HOME,".node-red");
|
||||
if (!settings.readOnly) {
|
||||
promises.push(fs.ensureDir(fspath.join(settings.userDir,"node_modules")));
|
||||
}
|
||||
}
|
||||
if (checkForConfigFile(process.env.NODE_RED_HOME)) {
|
||||
settings.userDir = process.env.NODE_RED_HOME
|
||||
} else if (process.env.HOMEPATH && checkForConfigFile(fspath.join(process.env.HOMEPATH,".node-red"))) {
|
||||
settings.userDir = fspath.join(process.env.HOMEPATH,".node-red");
|
||||
} else {
|
||||
settings.userDir = fspath.join(process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH || process.env.NODE_RED_HOME,".node-red");
|
||||
}
|
||||
}
|
||||
|
||||
if (!settings.readOnly) {
|
||||
promises.push(fs.ensureDir(fspath.join(settings.userDir,"node_modules")));
|
||||
}
|
||||
sessions.init(settings);
|
||||
runtimeSettings.init(settings);
|
||||
promises.push(runtimeSettings.init(settings));
|
||||
promises.push(library.init(settings));
|
||||
promises.push(projects.init(settings, runtime));
|
||||
|
||||
var packageFile = fspath.join(settings.userDir,"package.json");
|
||||
var packagePromise = when.resolve();
|
||||
var packagePromise = Promise.resolve();
|
||||
|
||||
if (!settings.readOnly) {
|
||||
packagePromise = function() {
|
||||
@@ -81,7 +75,7 @@ var localfilesystem = {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return when.all(promises).then(packagePromise);
|
||||
return Promise.all(promises).then(packagePromise);
|
||||
},
|
||||
|
||||
|
||||
|
@@ -21,7 +21,6 @@ const log = require("@node-red/util").log;
|
||||
const util = require("./util");
|
||||
|
||||
const configSections = ['nodes','users','projects'];
|
||||
let initialisePromise;
|
||||
|
||||
const settingsCache = {};
|
||||
|
||||
@@ -78,7 +77,9 @@ async function readSettings() {
|
||||
configSections.forEach(key => {
|
||||
const sectionFilename = getSettingsFilename(key);
|
||||
readPromises.push(util.readFile(sectionFilename,sectionFilename+".backup",{}).then(sectionData => {
|
||||
result[key] = sectionData;
|
||||
if (Object.keys(sectionData).length > 0) {
|
||||
result[key] = sectionData;
|
||||
}
|
||||
}))
|
||||
});
|
||||
return Promise.all(readPromises).then(() => result);
|
||||
@@ -95,18 +96,18 @@ module.exports = {
|
||||
globalSettingsBackup = fspath.join(settings.userDir,".config.json.backup");
|
||||
|
||||
if (fs.existsSync(globalSettingsFile) && !settings.readOnly) {
|
||||
initialisePromise = migrateToMultipleConfigFiles();
|
||||
return migrateToMultipleConfigFiles();
|
||||
} else {
|
||||
initialisePromise = Promise.resolve();
|
||||
return Promise.resolve();
|
||||
}
|
||||
},
|
||||
getSettings: function() {
|
||||
return initialisePromise.then(readSettings)
|
||||
return readSettings()
|
||||
},
|
||||
saveSettings: function(newSettings) {
|
||||
if (settings.readOnly) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
return initialisePromise.then(() => writeSettings(newSettings));
|
||||
return writeSettings(newSettings);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user