diff options
| author | Aram Drevekenin <aram@poor.dev> | 2024-01-17 12:10:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-17 12:10:49 +0100 |
| commit | d780bd91052d8282ba5a7f06c6fb7faa7ca7cc18 (patch) | |
| tree | ca08219a38b9e6a3b1c027682359074c86e0dbb5 /src/main.rs | |
| parent | Bump rust version to 1.75.0 (#3039) (diff) | |
| download | sl0ppij-d780bd91052d8282ba5a7f06c6fb7faa7ca7cc18.tar.gz sl0ppij-d780bd91052d8282ba5a7f06c6fb7faa7ca7cc18.tar.xz sl0ppij-d780bd91052d8282ba5a7f06c6fb7faa7ca7cc18.zip | |
feat(plugins): introduce 'pipes', allowing users to pipe data to and control plugins from the command line (#3066)
* prototype - working with message from the cli
* prototype - pipe from the CLI to plugins
* prototype - pipe from the CLI to plugins and back again
* prototype - working with better cli interface
* prototype - working after removing unused stuff
* prototype - working with launching plugin if it is not launched, also fixed event ordering
* refactor: change message to cli-message
* prototype - allow plugins to send messages to each other
* fix: allow cli messages to send plugin parameters (and implement backpressure)
* fix: use input_pipe_id to identify cli pipes instead of their message name
* fix: come cleanups and add skip_cache parameter
* fix: pipe/client-server communication robustness
* fix: leaking messages between plugins while loading
* feat: allow plugins to specify how a new plugin instance is launched when sending messages
* fix: add permissions
* refactor: adjust cli api
* fix: improve cli plugin loading error messages
* docs: cli pipe
* fix: take plugin configuration into account when messaging between plugins
* refactor: pipe message protobuf interface
* refactor: update(event) -> pipe
* refactor - rename CliMessage to CliPipe
* fix: add is_private to pipes and change some naming
* refactor - cli client
* refactor: various cleanups
* style(fmt): rustfmt
* fix(pipes): backpressure across multiple plugins
* style: some cleanups
* style(fmt): rustfmt
* style: fix merge conflict mistake
* style(wording): clarify pipe permission
Diffstat (limited to '')
| -rw-r--r-- | src/main.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index 955a982b..7481bfc5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -111,6 +111,31 @@ fn main() { commands::convert_old_theme_file(old_theme_file); std::process::exit(0); } + if let Some(Command::Sessions(Sessions::Pipe { + name, + payload, + args, + plugin, + plugin_configuration, + })) = opts.command + { + let command_cli_action = CliAction::Pipe { + name, + payload, + args, + plugin, + plugin_configuration, + + force_launch_plugin: false, + skip_plugin_cache: false, + floating_plugin: None, + in_place_plugin: None, + plugin_cwd: None, + plugin_title: None, + }; + commands::send_action_to_session(command_cli_action, opts.session, config); + std::process::exit(0); + } } if let Some(Command::Sessions(Sessions::ListSessions { |
