Server.chain
Dispatch several commands as one tmux a \; b invocation.
Source and package
- pub async fn chain(&self, chain: Command
Chain ) -> Result< CommandResult , Error > -
Description#
One process, one exit status, one merged stdout. tmux runs the chain up to the first failure and drops the remainder, so this trades the ability to tell which command failed for a single round trip. The merged result is identical whichever member failed: use it when the commands succeed or fail as a unit, and
Server::cmd()when you need to know where a failure happened.Errors
Returns an error when the process cannot be started, captured, awaited, or is cancelled by timeout or shutdown. A command tmux refuses is reported through the returned
CommandResult, not as an error.Examples#
use libtmux::{Command, CommandChain};let server = libtmux::Server::builder().socket_path("/tmp/libtmux-rs-test/chain-example-absent.sock").build()?;let chain = CommandChain::new(Command::new("list-sessions")).then(Command::new("list-panes"));let result = server.chain(chain).await?;assert!(result.exit_code().is_some());server.shutdown().await?;- Parameters
Guides#
Pages that discuss chain.
In other ports#
Run several commands in one tmux invocation
| Language | Equivalent |
|---|---|
| Python | no equivalent on Server |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | no equivalent on Server |
| Go | no equivalent on Server |
| Java | io |
| C# | Lib |
| C++ | libtmux:: |
| Swift | no equivalent on Server |
| OCaml | No direct public OCaml equivalent is recorded for this operation. |
| Perl | batch executes ordered independent requests, not a tmux command list in one invocation; command chaining is deferred. |
No equivalent is recorded in Ruby, Lua, PowerShell, Julia, Erlang, Elixir, Common Lisp, Clojure, Kotlin, Scala or F#.