mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Remove all uses of fs.exists as it is deprecated
The tests still use it in places - particular localfilesystem tests, but those tests need to be redone with sinon stubbing in place and not rely on real fs operations.
This commit is contained in:
parent
e65770a53a
commit
f62b7afede
@ -22,12 +22,16 @@ module.exports = function(RED) {
|
||||
|
||||
var gpioCommand = __dirname+'/nrgpio.py';
|
||||
|
||||
if (!fs.existsSync("/dev/ttyAMA0")) { // unlikely if not on a Pi
|
||||
try {
|
||||
fs.statSync("/dev/ttyAMA0"); // unlikely if not on a Pi
|
||||
} catch(err) {
|
||||
//RED.log.info(RED._("rpi-gpio.errors.ignorenode"));
|
||||
throw "Info : "+RED._("rpi-gpio.errors.ignorenode");
|
||||
}
|
||||
|
||||
if (!fs.existsSync("/usr/share/doc/python-rpi.gpio")) {
|
||||
try {
|
||||
fs.statSync("/usr/share/doc/python-rpi.gpio");
|
||||
} catch(err) {
|
||||
RED.log.warn(RED._("rpi-gpio.errors.libnotfound"));
|
||||
throw "Warning : "+RED._("rpi-gpio.errors.libnotfound");
|
||||
}
|
||||
|
@ -59,10 +59,13 @@ module.exports = {
|
||||
} else {
|
||||
for (var p=0;p<icon_paths.length;p++) {
|
||||
var iconPath = path.join(icon_paths[p],req.params.icon);
|
||||
if (fs.existsSync(iconPath)) {
|
||||
try {
|
||||
fs.statSync(iconPath);
|
||||
res.sendFile(iconPath);
|
||||
iconCache[req.params.icon] = iconPath;
|
||||
return;
|
||||
} catch(err) {
|
||||
// iconPath doesn't exist
|
||||
}
|
||||
}
|
||||
res.sendFile(defaultIcon);
|
||||
|
@ -28,18 +28,25 @@ var fs = require("fs");
|
||||
var runtimeMetricInterval = null;
|
||||
|
||||
function init(userSettings) {
|
||||
userSettings.version = version();
|
||||
userSettings.version = getVersion();
|
||||
log.init(userSettings);
|
||||
settings.init(userSettings);
|
||||
}
|
||||
|
||||
function version() {
|
||||
var p = require(path.join(__dirname,"..","..","package.json")).version;
|
||||
var version;
|
||||
|
||||
function getVersion() {
|
||||
if (!version) {
|
||||
version = require(path.join(__dirname,"..","..","package.json")).version;
|
||||
/* istanbul ignore else */
|
||||
if (fs.existsSync(path.join(__dirname,"..","..",".git"))) {
|
||||
p += "-git";
|
||||
try {
|
||||
fs.statSync(path.join(__dirname,"..","..",".git"));
|
||||
version += "-git";
|
||||
} catch(err) {
|
||||
// No git directory
|
||||
}
|
||||
return p;
|
||||
}
|
||||
return version;
|
||||
}
|
||||
|
||||
function start() {
|
||||
@ -142,7 +149,7 @@ var runtime = module.exports = {
|
||||
start: start,
|
||||
stop: stop,
|
||||
|
||||
version: version,
|
||||
version: getVersion,
|
||||
|
||||
log: log,
|
||||
i18n: i18n,
|
||||
|
@ -40,7 +40,7 @@ function checkModulePath(folder) {
|
||||
var err;
|
||||
var fullPath = path.resolve(folder);
|
||||
var packageFile = path.join(fullPath,'package.json');
|
||||
if (fs.existsSync(packageFile)) {
|
||||
try {
|
||||
var pkg = require(packageFile);
|
||||
moduleName = pkg.name;
|
||||
if (!pkg['node-red']) {
|
||||
@ -49,7 +49,7 @@ function checkModulePath(folder) {
|
||||
err.code = 'invalid_module';
|
||||
throw err;
|
||||
}
|
||||
} else {
|
||||
} catch(err2) {
|
||||
err = new Error("Module not found");
|
||||
err.code = 404;
|
||||
throw err;
|
||||
@ -151,7 +151,10 @@ function uninstallModule(module) {
|
||||
}
|
||||
var installDir = settings.userDir || process.env.NODE_RED_HOME || ".";
|
||||
var moduleDir = path.join(installDir,"node_modules",module);
|
||||
if (!fs.existsSync(moduleDir)) {
|
||||
|
||||
try {
|
||||
fs.statSync(moduleDir);
|
||||
} catch(err) {
|
||||
return reject(new Error(log._("server.install.uninstall-failed",{name:module})));
|
||||
}
|
||||
|
||||
|
@ -49,16 +49,17 @@ function getLocalFile(file) {
|
||||
if (isExcluded(path.basename(file))) {
|
||||
return null;
|
||||
}
|
||||
if (fs.existsSync(file.replace(/\.js$/,".html"))) {
|
||||
try {
|
||||
fs.statSync(file.replace(/\.js$/,".html"));
|
||||
return {
|
||||
file: file,
|
||||
module: "node-red",
|
||||
name: path.basename(file).replace(/^\d+-/,"").replace(/\.js$/,""),
|
||||
version: settings.version
|
||||
};
|
||||
}
|
||||
} catch(err) {
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -175,9 +176,11 @@ function getModuleNodeFiles(module) {
|
||||
});
|
||||
var iconDir = path.join(moduleDir,path.dirname(nodes[n]),"icons");
|
||||
if (iconDirs.indexOf(iconDir) == -1) {
|
||||
if (fs.existsSync(iconDir)) {
|
||||
try {
|
||||
fs.statSync(iconDir);
|
||||
events.emit("node-icon-dir",iconDir);
|
||||
iconDirs.push(iconDir);
|
||||
} catch(err) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -128,9 +128,10 @@ var localfilesystem = {
|
||||
var promises = [];
|
||||
|
||||
if (!settings.userDir) {
|
||||
if (fs.existsSync(fspath.join(process.env.NODE_RED_HOME,".config.json"))) {
|
||||
try {
|
||||
fs.statSync(fspath.join(process.env.NODE_RED_HOME,".config.json"));
|
||||
settings.userDir = process.env.NODE_RED_HOME;
|
||||
} else {
|
||||
} catch(err) {
|
||||
settings.userDir = fspath.join(process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE || process.env.NODE_RED_HOME,".node-red");
|
||||
if (!settings.readOnly) {
|
||||
promises.push(promiseDir(settings.userDir));
|
||||
@ -148,10 +149,11 @@ var localfilesystem = {
|
||||
// Relative to cwd
|
||||
flowsFullPath = fspath.join(process.cwd(),flowsFile);
|
||||
} else {
|
||||
if (fs.existsSync(fspath.join(process.cwd(),flowsFile))) {
|
||||
try {
|
||||
fs.statSync(fspath.join(process.cwd(),flowsFile));
|
||||
// Found in cwd
|
||||
flowsFullPath = fspath.join(process.cwd(),flowsFile);
|
||||
} else {
|
||||
} catch(err) {
|
||||
// Use userDir
|
||||
flowsFullPath = fspath.join(settings.userDir,flowsFile);
|
||||
}
|
||||
@ -191,15 +193,12 @@ var localfilesystem = {
|
||||
return when.promise(function(resolve) {
|
||||
log.info(log._("storage.localfilesystem.user-dir",{path:settings.userDir}));
|
||||
log.info(log._("storage.localfilesystem.flows-file",{path:flowsFullPath}));
|
||||
fs.exists(flowsFullPath, function(exists) {
|
||||
if (exists) {
|
||||
resolve(nodeFn.call(fs.readFile,flowsFullPath,'utf8').then(function(data) {
|
||||
return JSON.parse(data);
|
||||
}));
|
||||
} else {
|
||||
fs.readFile(flowsFullPath,'utf8',function(err,data) {
|
||||
if (!err) {
|
||||
return resolve(JSON.parse(data));
|
||||
}
|
||||
log.info(log._("storage.localfilesystem.create"));
|
||||
resolve([]);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
@ -209,8 +208,9 @@ var localfilesystem = {
|
||||
return when.resolve();
|
||||
}
|
||||
|
||||
if (fs.existsSync(flowsFullPath)) {
|
||||
try {
|
||||
fs.renameSync(flowsFullPath,flowsFileBackup);
|
||||
} catch(err) {
|
||||
}
|
||||
|
||||
var flowData;
|
||||
@ -225,17 +225,13 @@ var localfilesystem = {
|
||||
|
||||
getCredentials: function() {
|
||||
return when.promise(function(resolve) {
|
||||
fs.exists(credentialsFile, function(exists) {
|
||||
if (exists) {
|
||||
resolve(nodeFn.call(fs.readFile, credentialsFile, 'utf8').then(function(data) {
|
||||
return JSON.parse(data)
|
||||
}));
|
||||
fs.readFile(credentialsFile,'utf8',function(err,data) {
|
||||
if (!err) {
|
||||
resolve(JSON.parse(data));
|
||||
} else {
|
||||
fs.exists(oldCredentialsFile, function(exists) {
|
||||
if (exists) {
|
||||
resolve(nodeFn.call(fs.readFile, oldCredentialsFile, 'utf8').then(function(data) {
|
||||
return JSON.parse(data)
|
||||
}));
|
||||
fs.readFile(oldCredentialsFile,'utf8',function(err,data) {
|
||||
if (!err) {
|
||||
resolve(JSON.parse(data));
|
||||
} else {
|
||||
resolve({});
|
||||
}
|
||||
@ -250,8 +246,9 @@ var localfilesystem = {
|
||||
return when.resolve();
|
||||
}
|
||||
|
||||
if (fs.existsSync(credentialsFile)) {
|
||||
try {
|
||||
fs.renameSync(credentialsFile,credentialsFileBackup);
|
||||
} catch(err) {
|
||||
}
|
||||
var credentialData;
|
||||
if (settings.flowFilePretty) {
|
||||
@ -263,21 +260,18 @@ var localfilesystem = {
|
||||
},
|
||||
|
||||
getSettings: function() {
|
||||
if (fs.existsSync(globalSettingsFile)) {
|
||||
return nodeFn.call(fs.readFile,globalSettingsFile,'utf8').then(function(data) {
|
||||
if (data) {
|
||||
return when.promise(function(resolve,reject) {
|
||||
fs.readFile(globalSettingsFile,'utf8',function(err,data) {
|
||||
if (!err) {
|
||||
try {
|
||||
return JSON.parse(data);
|
||||
} catch(err) {
|
||||
return resolve(JSON.parse(data));
|
||||
} catch(err2) {
|
||||
log.trace("Corrupted config detected - resetting");
|
||||
return {};
|
||||
}
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
});
|
||||
}
|
||||
return when.resolve({});
|
||||
return resolve({});
|
||||
})
|
||||
})
|
||||
},
|
||||
saveSettings: function(settings) {
|
||||
if (settings.readOnly) {
|
||||
@ -286,21 +280,18 @@ var localfilesystem = {
|
||||
return writeFile(globalSettingsFile,JSON.stringify(settings,null,1));
|
||||
},
|
||||
getSessions: function() {
|
||||
if (fs.existsSync(sessionsFile)) {
|
||||
return nodeFn.call(fs.readFile,sessionsFile,'utf8').then(function(data) {
|
||||
if (data) {
|
||||
return when.promise(function(resolve,reject) {
|
||||
fs.readFile(sessionsFile,'utf8',function(err,data){
|
||||
if (!err) {
|
||||
try {
|
||||
return JSON.parse(data);
|
||||
} catch(err) {
|
||||
return resolve(JSON.parse(data));
|
||||
} catch(err2) {
|
||||
log.trace("Corrupted sessions file - resetting");
|
||||
return {};
|
||||
}
|
||||
} else {
|
||||
return {};
|
||||
}
|
||||
resolve({});
|
||||
})
|
||||
});
|
||||
}
|
||||
return when.resolve({});
|
||||
},
|
||||
saveSessions: function(sessions) {
|
||||
if (settings.readOnly) {
|
||||
|
@ -47,8 +47,8 @@ describe('nodes/registry/installer', function() {
|
||||
registry.getModuleInfo.restore();
|
||||
}
|
||||
|
||||
if (require('fs').existsSync.restore) {
|
||||
require('fs').existsSync.restore();
|
||||
if (require('fs').statSync.restore) {
|
||||
require('fs').statSync.restore();
|
||||
}
|
||||
|
||||
});
|
||||
@ -160,7 +160,7 @@ describe('nodes/registry/installer', function() {
|
||||
cb(null,"","");
|
||||
});
|
||||
|
||||
var exists = sinon.stub(fs,"existsSync", function(fn) { return true; });
|
||||
sinon.stub(fs,"statSync", function(fn) { return {}; });
|
||||
|
||||
installer.uninstallModule("this_wont_exist").then(function(info) {
|
||||
info.should.eql(nodeInfo);
|
||||
|
Loading…
Reference in New Issue
Block a user