mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Compare commits
8 Commits
4.0.0-beta
...
runnable-p
Author | SHA1 | Date | |
---|---|---|---|
|
c256e27a83 | ||
|
3f41036919 | ||
|
95753ce5cd | ||
|
1906818c87 | ||
|
02765f8aad | ||
|
89f1dedf20 | ||
|
7a8906535e | ||
|
499d22daca |
@@ -352,6 +352,7 @@ RED.projects.settings = (function() {
|
|||||||
}
|
}
|
||||||
},{dependencies:dependencies});
|
},{dependencies:dependencies});
|
||||||
}
|
}
|
||||||
|
|
||||||
function editDependencies(activeProject,depsJSON,container,depsList) {
|
function editDependencies(activeProject,depsJSON,container,depsList) {
|
||||||
var json = depsJSON||JSON.stringify(activeProject.dependencies||{},"",4);
|
var json = depsJSON||JSON.stringify(activeProject.dependencies||{},"",4);
|
||||||
if (json === "{}") {
|
if (json === "{}") {
|
||||||
@@ -380,6 +381,7 @@ RED.projects.settings = (function() {
|
|||||||
|
|
||||||
function createDependenciesPane(activeProject) {
|
function createDependenciesPane(activeProject) {
|
||||||
var pane = $('<div id="project-settings-tab-deps" class="project-settings-tab-pane node-help"></div>');
|
var pane = $('<div id="project-settings-tab-deps" class="project-settings-tab-pane node-help"></div>');
|
||||||
|
var nrDepButton;
|
||||||
if (RED.user.hasPermission("projects.write")) {
|
if (RED.user.hasPermission("projects.write")) {
|
||||||
$('<button class="editor-button editor-button-small" style="margin-top:10px;float: right;">edit</button>')
|
$('<button class="editor-button editor-button-small" style="margin-top:10px;float: right;">edit</button>')
|
||||||
.appendTo(pane)
|
.appendTo(pane)
|
||||||
@@ -387,6 +389,16 @@ RED.projects.settings = (function() {
|
|||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
editDependencies(activeProject,null,pane,depsList)
|
editDependencies(activeProject,null,pane,depsList)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nrDepButton = $('<button class="editor-button editor-button-small" style="margin-top:10px;">add Node-RED core</button>')
|
||||||
|
.appendTo(pane)
|
||||||
|
.click(function(evt) {
|
||||||
|
evt.preventDefault();
|
||||||
|
activeProject.dependencies["node-red"] = "~"+RED.settings.version;
|
||||||
|
updateProjectDependencies(activeProject,depsList);
|
||||||
|
$(this).hide();
|
||||||
|
});
|
||||||
|
if (activeProject.dependencies.hasOwnProperty("node-red")) { nrDepButton.hide(); }
|
||||||
}
|
}
|
||||||
var depsList = $("<ol>",{style:"position: absolute;top: 60px;bottom: 20px;left: 20px;right: 20px;"}).appendTo(pane);
|
var depsList = $("<ol>",{style:"position: absolute;top: 60px;bottom: 20px;left: 20px;right: 20px;"}).appendTo(pane);
|
||||||
depsList.editableList({
|
depsList.editableList({
|
||||||
@@ -473,6 +485,7 @@ RED.projects.settings = (function() {
|
|||||||
evt.preventDefault();
|
evt.preventDefault();
|
||||||
var deps = $.extend(true, {}, activeProject.dependencies);
|
var deps = $.extend(true, {}, activeProject.dependencies);
|
||||||
delete deps[entry.id];
|
delete deps[entry.id];
|
||||||
|
if (entry.id === "node-red") { nrDepButton.show(); }
|
||||||
saveDependencies(depsList,row,deps,function(err) {
|
saveDependencies(depsList,row,deps,function(err) {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
row.fadeOut(200,function() {
|
row.fadeOut(200,function() {
|
||||||
@@ -519,7 +532,6 @@ RED.projects.settings = (function() {
|
|||||||
|
|
||||||
updateProjectDependencies(activeProject,depsList);
|
updateProjectDependencies(activeProject,depsList);
|
||||||
return pane;
|
return pane;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function showProjectFileListing(row,activeProject,current,filter,done) {
|
function showProjectFileListing(row,activeProject,current,filter,done) {
|
||||||
|
22
red.js
22
red.js
@@ -31,8 +31,10 @@ var app = express();
|
|||||||
|
|
||||||
var settingsFile;
|
var settingsFile;
|
||||||
var flowFile;
|
var flowFile;
|
||||||
|
var readonly;
|
||||||
|
|
||||||
var knownOpts = {
|
var knownOpts = {
|
||||||
|
"credentialSecret": String,
|
||||||
"help": Boolean,
|
"help": Boolean,
|
||||||
"port": Number,
|
"port": Number,
|
||||||
"settings": [path],
|
"settings": [path],
|
||||||
@@ -41,6 +43,7 @@ var knownOpts = {
|
|||||||
"verbose": Boolean
|
"verbose": Boolean
|
||||||
};
|
};
|
||||||
var shortHands = {
|
var shortHands = {
|
||||||
|
"k":["--credentialSecret"],
|
||||||
"?":["--help"],
|
"?":["--help"],
|
||||||
"p":["--port"],
|
"p":["--port"],
|
||||||
"s":["--settings"],
|
"s":["--settings"],
|
||||||
@@ -59,9 +62,11 @@ var parsedArgs = nopt(knownOpts,shortHands,process.argv,2)
|
|||||||
if (parsedArgs.help) {
|
if (parsedArgs.help) {
|
||||||
console.log("Node-RED v"+RED.version());
|
console.log("Node-RED v"+RED.version());
|
||||||
console.log("Usage: node-red [-v] [-?] [--settings settings.js] [--userDir DIR]");
|
console.log("Usage: node-red [-v] [-?] [--settings settings.js] [--userDir DIR]");
|
||||||
console.log(" [--port PORT] [--title TITLE] [flows.json]");
|
console.log(" [--port PORT] [--credentialSecret SECRET_KEY]");
|
||||||
|
console.log(" [--title TITLE] [flows.json]");
|
||||||
console.log("");
|
console.log("");
|
||||||
console.log("Options:");
|
console.log("Options:");
|
||||||
|
console.log(" -k, --credentialSecret SECRET_KEY key to unlock credentials file");
|
||||||
console.log(" -p, --port PORT port to listen on");
|
console.log(" -p, --port PORT port to listen on");
|
||||||
console.log(" -s, --settings FILE use specified settings file");
|
console.log(" -s, --settings FILE use specified settings file");
|
||||||
console.log(" --title TITLE process window title");
|
console.log(" --title TITLE process window title");
|
||||||
@@ -101,8 +106,15 @@ if (parsedArgs.settings) {
|
|||||||
var settingsStat = fs.statSync(defaultSettings);
|
var settingsStat = fs.statSync(defaultSettings);
|
||||||
if (settingsStat.mtime.getTime() <= settingsStat.ctime.getTime()) {
|
if (settingsStat.mtime.getTime() <= settingsStat.ctime.getTime()) {
|
||||||
// Default settings file has not been modified - safe to copy
|
// Default settings file has not been modified - safe to copy
|
||||||
|
try {
|
||||||
fs.copySync(defaultSettings,userSettingsFile);
|
fs.copySync(defaultSettings,userSettingsFile);
|
||||||
settingsFile = userSettingsFile;
|
settingsFile = userSettingsFile;
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
console.log("Can't copy settings file.");
|
||||||
|
settingsFile = defaultSettings;
|
||||||
|
readonly = true;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Use default settings.js as it has been modified
|
// Use default settings.js as it has been modified
|
||||||
settingsFile = defaultSettings;
|
settingsFile = defaultSettings;
|
||||||
@@ -114,6 +126,10 @@ if (parsedArgs.settings) {
|
|||||||
try {
|
try {
|
||||||
var settings = require(settingsFile);
|
var settings = require(settingsFile);
|
||||||
settings.settingsFile = settingsFile;
|
settings.settingsFile = settingsFile;
|
||||||
|
if (readonly === true) {
|
||||||
|
console.log("Setting to read Only mode.");
|
||||||
|
settings.readOnly = true;
|
||||||
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
console.log("Error loading settings file: "+settingsFile)
|
console.log("Error loading settings file: "+settingsFile)
|
||||||
if (err.code == 'MODULE_NOT_FOUND') {
|
if (err.code == 'MODULE_NOT_FOUND') {
|
||||||
@@ -126,6 +142,10 @@ try {
|
|||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (parsedArgs.credentialSecret) {
|
||||||
|
settings.credentialSecret = parsedArgs.credentialSecret;
|
||||||
|
}
|
||||||
|
|
||||||
if (parsedArgs.verbose) {
|
if (parsedArgs.verbose) {
|
||||||
settings.verbose = true;
|
settings.verbose = true;
|
||||||
}
|
}
|
||||||
|
@@ -276,10 +276,12 @@ Project.prototype.update = function (user, data) {
|
|||||||
saveREADME = true;
|
saveREADME = true;
|
||||||
this.description = data.description;
|
this.description = data.description;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.hasOwnProperty('dependencies')) {
|
if (data.hasOwnProperty('dependencies')) {
|
||||||
savePackage = true;
|
savePackage = true;
|
||||||
this.package.dependencies = data.dependencies;
|
this.package.dependencies = data.dependencies;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.hasOwnProperty('summary')) {
|
if (data.hasOwnProperty('summary')) {
|
||||||
savePackage = true;
|
savePackage = true;
|
||||||
this.package.description = data.summary;
|
this.package.description = data.summary;
|
||||||
@@ -332,6 +334,7 @@ Project.prototype.update = function (user, data) {
|
|||||||
if (data.files.hasOwnProperty('flow') && this.package['node-red'].settings.flowFile !== data.files.flow) {
|
if (data.files.hasOwnProperty('flow') && this.package['node-red'].settings.flowFile !== data.files.flow) {
|
||||||
this.paths.flowFile = data.files.flow;
|
this.paths.flowFile = data.files.flow;
|
||||||
this.package['node-red'].settings.flowFile = data.files.flow;
|
this.package['node-red'].settings.flowFile = data.files.flow;
|
||||||
|
this.package.scripts = {"start":"node-red -u . " + data.files.flow};
|
||||||
savePackage = true;
|
savePackage = true;
|
||||||
flowFilesChanged = true;
|
flowFilesChanged = true;
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,8 @@ module.exports = {
|
|||||||
"node-red": {
|
"node-red": {
|
||||||
"settings": {
|
"settings": {
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"scripts": {}
|
||||||
};
|
};
|
||||||
if (project.files) {
|
if (project.files) {
|
||||||
if (project.files.flow) {
|
if (project.files.flow) {
|
||||||
@@ -43,5 +44,5 @@ module.exports = {
|
|||||||
|
|
||||||
return content;
|
return content;
|
||||||
},
|
},
|
||||||
".gitignore": function() { return "*.backup" ;}
|
".gitignore": function() { return "*.backup\n.config.json\n" ;}
|
||||||
}
|
}
|
||||||
|
@@ -81,8 +81,8 @@ module.exports = {
|
|||||||
writeFile: function(path,content,backupPath) {
|
writeFile: function(path,content,backupPath) {
|
||||||
if (backupPath) {
|
if (backupPath) {
|
||||||
try {
|
try {
|
||||||
console.log(path);
|
// console.log(path);
|
||||||
console.log(backupPath);
|
// console.log(backupPath);
|
||||||
fs.renameSync(path,backupPath);
|
fs.renameSync(path,backupPath);
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
|
Reference in New Issue
Block a user