Server.run
Behavior: Raw commands.
Source and package
- Qualified name
-
LibTmux:: Async:: Server# run - Module
- LibTmux::Async
- Declared in
Server- Package
- libtmux-async
- Source
- gems/libtmux-async/lib/libtmux/async/server.rb
- def run: ( ::Array[::String], ?input: ::String, ?timeout: ::Numeric, ?cancel: untyped ) -> ::Lib
Tmux:: Command Result -
Description#
Behavior contract: Raw commands.
Examples#
Cancel an Async task whose tmux request is waiting and read the delivery evidence on the Cancelled error. Use Ruby 3.3 or newer with Bundler, and tmux 3.3a or newer, on Unix with
/bin/catand/bin/shavailable. In an empty directory, save thisGemfile:source "https://rubygems.org"gem "libtmux-async", "0.1.1"Save this complete program as
async_run.rb. ItsServer.start()block owns a private tmux server and stops it on exit, including after an error. View source# frozen_string_literal: truebegin# docs:begin mainrequire "libtmux"require "libtmux/async"LibTmux::Server.start do |server|server.new_session(name: "work", command: ["/bin/cat"])Async do |parent|LibTmux::Async.open(parent: parent, server: server) do |scope|waiting = parent.async doscope.server.run(["wait-for", "-S", "ready", ";", "wait-for", "held"], timeout: 5)rescue LibTmux::Cancelled => errorerrorendscope.server.wait_for("ready", timeout: 5)waiting.cancelfailure = waiting.waitputs "request: #{failure.class}"puts "delivery: #{failure.delivery}"endend.waitend# docs:end mainrescue StandardError => errorwarn "#{error.class}: #{error.message}"exit 1endInstall the gem and run the program. An operation or cleanup error makes it exit unsuccessfully:
Terminal window $ bundle install && \bundle exec ruby async_run.rbExpected output:
request: LibTmux::Cancelleddelivery: possibly_sent
Guides#
Pages that discuss run.