From a93a4996848578ec5625c2ce079804a7e15ff37b Mon Sep 17 00:00:00 2001 From: Carlo Colombo Date: Sun, 4 Dec 2022 11:59:59 +0100 Subject: [PATCH] Add commands command to run commands returned from a filter (#7073) --- core/language/en-GB/Help/commands.tid | 14 +++++++++ core/modules/commands/commands.js | 43 +++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 core/language/en-GB/Help/commands.tid create mode 100644 core/modules/commands/commands.js diff --git a/core/language/en-GB/Help/commands.tid b/core/language/en-GB/Help/commands.tid new file mode 100644 index 000000000..1f2c01ffc --- /dev/null +++ b/core/language/en-GB/Help/commands.tid @@ -0,0 +1,14 @@ +title: $:/language/Help/commands +description: Run commands returned from a filter + +It runs sequentially the commands returned from the filter. + +``` +--commands +``` + +Examples + +`--commands "[enlist{$:/build-commands-as-text}]"` + +`--commands "[{$:/build-commands-as-json}jsonindexes[]] :map[{$:/build-commands-as-json}jsonget]"` diff --git a/core/modules/commands/commands.js b/core/modules/commands/commands.js new file mode 100644 index 000000000..2842454f8 --- /dev/null +++ b/core/modules/commands/commands.js @@ -0,0 +1,43 @@ +/*\ +title: $:/core/modules/commands/commands.js +type: application/javascript +module-type: command + +Runs sequentially the commands returned from the filter. + +\*/ + +(function() { + + /*jslint node: true, browser: true */ + /*global $tw: false */ + "use strict"; + + exports.info = { + name: "commands", + synchronous: true + }; + + var Command = function(params, commander) { + this.params = params; + this.commander = commander; + }; + + Command.prototype.execute = function() { + // Parse the filter + var filter = this.params[0]; + if(!filter) { + return "No filter specified"; + } + var commands = this.commander.wiki.filterTiddlers(filter) + if(commands.length === 0) { + return "No tiddlers found for filter '" + filter + "'"; + } + + this.commander.addCommandTokens(commands); + return null; + }; + + exports.Command = Command; + +})();