From 20a31a6d3846fe841df22601f27307b161f279cf Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Wed, 14 Nov 2018 12:51:23 +0000 Subject: [PATCH] Allow a project to be loaded from cmdline even if its unknown --- .../storage/localfilesystem/projects/index.js | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/index.js b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/index.js index 88c7663eb..d11c2b06d 100644 --- a/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/index.js +++ b/packages/node_modules/@node-red/runtime/lib/storage/localfilesystem/projects/index.js @@ -126,6 +126,10 @@ function init(_settings, _runtime) { } else { activeProject = globalSettings.projects.activeProject; } + if (!globalSettings.projects.projects) { + globalSettings.projects.projects = {}; + saveSettings = true; + } if (settings.flowFile) { // if flowFile is a known project name - use it if (globalSettings.projects.projects.hasOwnProperty(settings.flowFile)) { @@ -133,14 +137,19 @@ function init(_settings, _runtime) { globalSettings.projects.activeProject = settings.flowFile; saveSettings = true; } else { - // if it resolves to a dir - use it... but: - // - where to get credsecret from? - // - what if the name clashes with a known project? - - // var stat = fs.statSync(settings.flowFile); - // if (stat && stat.isDirectory()) { - // activeProject = settings.flowFile; - // } + // if it resolves to a dir - use it + var stat = fs.statSync(fspath.join(projectsDir,settings.flowFile)); + if (stat && stat.isDirectory()) { + activeProject = settings.flowFile; + globalSettings.projects.activeProject = activeProject; + // Now check for a credentialSecret + if (settings.credentialSecret !== undefined) { + globalSettings.projects.projects[settings.flowFile] = { + credentialSecret: settings.credentialSecret + } + saveSettings = true; + } + } } } if (!activeProject) {