Class: Ace::Tmux::CLI::Commands::Window
- Inherits:
-
Support::Cli::Command
- Object
- Support::Cli::Command
- Ace::Tmux::CLI::Commands::Window
- Includes:
- Support::Cli::Base
- Defined in:
- lib/ace/tmux/cli/commands/window.rb
Overview
Add a window to an existing session from a preset
Instance Method Summary collapse
Instance Method Details
#call(preset: nil, **options) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ace/tmux/cli/commands/window.rb', line 42 def call(preset: nil, **) config = Tmux.config tmux_bin = config.dig("tmux_binary") || "tmux" preset ||= config.dig("defaults", "window") raise Ace::Support::Cli::Error.new("No preset specified and no default window configured") unless preset preset_loader = Molecules::PresetLoader.new( gem_root: Tmux.gem_root ) session_builder = Molecules::SessionBuilder.new( preset_loader: preset_loader ) executor = Molecules::TmuxExecutor.new manager = Organisms::WindowManager.new( executor: executor, session_builder: session_builder, tmux: tmux_bin ) effective_name = [:name] || ([:root] ? File.basename([:root]) : preset) puts "Adding window '#{effective_name}' (preset: #{preset})..." unless [:quiet] manager.add_window(preset, session: [:session], root: [:root], name: [:name]) puts "Window '#{effective_name}' added." unless [:quiet] rescue Ace::Tmux::PresetNotFoundError => e raise Ace::Support::Cli::Error.new(e.) rescue Ace::Tmux::NotInTmuxError => e raise Ace::Support::Cli::Error.new(e.) end |