This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Released under the MIT License.
|
||||
# Copyright, 2019-2024, by Samuel Williams.
|
||||
|
||||
module Console
|
||||
module Terminal
|
||||
module Formatter
|
||||
# Format spawn events.
|
||||
class Spawn
|
||||
KEY = :spawn
|
||||
|
||||
def initialize(terminal)
|
||||
@terminal = terminal
|
||||
@terminal[:spawn_command] ||= @terminal.style(:blue, nil, :bold)
|
||||
end
|
||||
|
||||
def format(event, output, verbose: false, width: 80)
|
||||
environment, arguments, options = event.values_at(:environment, :arguments, :options)
|
||||
|
||||
arguments = arguments.flatten.collect(&:to_s)
|
||||
|
||||
output.puts "#{@terminal[:spawn_command]}#{arguments.join(' ')}#{@terminal.reset}#{chdir_string(options)}"
|
||||
|
||||
if verbose and environment
|
||||
environment.each do |key, value|
|
||||
output.puts "export #{key}=#{value}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def chdir_string(options)
|
||||
if options and chdir = options[:chdir]
|
||||
" in #{chdir}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user