mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Merge branch 'pr_2908' into dev
This commit is contained in:
@@ -21,8 +21,8 @@
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label><i class="fa fa-plus"></i> <span data-i18n="exec.label.append"></span></label>
|
||||
<input type="checkbox" id="node-input-addpay" style="display:inline-block; width:auto; vertical-align:top;">
|
||||
msg.payload
|
||||
<input type="checkbox" id="node-input-addpay-cb" style="display:inline-block; width:auto;">
|
||||
<input type="text" id="node-input-addpay" style="margin-left: 5px; width:160px;">
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label for="node-input-append"> </label>
|
||||
@@ -52,7 +52,7 @@
|
||||
color:"darksalmon",
|
||||
defaults: {
|
||||
command: {value:""},
|
||||
addpay: {value:false},
|
||||
addpay: {value:""},
|
||||
append: {value:""},
|
||||
useSpawn: {value:"false"},
|
||||
timer: {value:""},
|
||||
@@ -79,6 +79,24 @@
|
||||
if ($("#node-input-useSpawn").val() === null) {
|
||||
$("#node-input-useSpawn").val(this.useSpawn.toString());
|
||||
}
|
||||
$("#node-input-addpay-cb").prop("checked", this.addpay === true || (this.addpay !== false && this.addpay !== ""))
|
||||
var addpayValue = (this.addpay === true)?"payload":((this.addpay === false || this.addpay === "")?"payload":this.addpay);
|
||||
$("#node-input-addpay-cb").on("change", function(evt) {
|
||||
$("#node-input-addpay").typedInput("disable",!$("#node-input-addpay-cb").prop("checked"));
|
||||
});
|
||||
|
||||
$("#node-input-addpay").val(addpayValue);
|
||||
$("#node-input-addpay").typedInput({
|
||||
default: "msg",
|
||||
types: ["msg"]
|
||||
});
|
||||
|
||||
$("#node-input-addpay-cb").trigger("change")
|
||||
},
|
||||
oneditsave: function() {
|
||||
if (!$("#node-input-addpay-cb").prop("checked")) {
|
||||
$("#node-input-addpay").val("");
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
@@ -26,6 +26,9 @@ module.exports = function(RED) {
|
||||
this.cmd = (n.command || "").trim();
|
||||
if (n.addpay === undefined) { n.addpay = true; }
|
||||
this.addpay = n.addpay;
|
||||
if (this.addpay === true) {
|
||||
this.addpay = "payload";
|
||||
}
|
||||
this.append = (n.append || "").trim();
|
||||
this.useSpawn = (n.useSpawn == "true");
|
||||
this.timer = Number(n.timer || 0)*1000;
|
||||
@@ -61,12 +64,17 @@ module.exports = function(RED) {
|
||||
}
|
||||
else {
|
||||
var child;
|
||||
// make the extra args into an array
|
||||
// then prepend with the msg.payload
|
||||
var arg = node.cmd;
|
||||
if (node.addpay) {
|
||||
var value = RED.util.getMessageProperty(msg, node.addpay);
|
||||
if (value !== undefined) {
|
||||
arg += " " + value;
|
||||
}
|
||||
}
|
||||
if (node.append.trim() !== "") { arg += " " + node.append; }
|
||||
if (this.useSpawn === true) {
|
||||
// make the extra args into an array
|
||||
// then prepend with the msg.payload
|
||||
var arg = node.cmd;
|
||||
if ((node.addpay === true) && msg.hasOwnProperty("payload")) { arg += " "+msg.payload; }
|
||||
if (node.append.trim() !== "") { arg += " "+node.append; }
|
||||
// slice whole line by spaces and removes any quotes since spawn can't handle them
|
||||
arg = arg.match(/(?:[^\s"]+|"[^"]*")+/g).map((a) => {
|
||||
if (/^".*"$/.test(a)) {
|
||||
@@ -126,12 +134,9 @@ module.exports = function(RED) {
|
||||
});
|
||||
}
|
||||
else {
|
||||
var cl = node.cmd;
|
||||
if ((node.addpay === true) && msg.hasOwnProperty("payload")) { cl += " "+msg.payload; }
|
||||
if (node.append.trim() !== "") { cl += " "+node.append; }
|
||||
/* istanbul ignore else */
|
||||
if (RED.settings.verbose) { node.log(cl); }
|
||||
child = exec(cl, node.execOpt, function (error, stdout, stderr) {
|
||||
if (RED.settings.verbose) { node.log(arg); }
|
||||
child = exec(arg, node.execOpt, function (error, stdout, stderr) {
|
||||
var msg2, msg3;
|
||||
delete msg.payload;
|
||||
if (stderr) {
|
||||
|
Reference in New Issue
Block a user