class Invoker::CLI::Tail

Attributes

process_names[RW]

Public Class Methods

new(process_names) click to toggle source
# File lib/invoker/cli/tail.rb, line 4
def initialize(process_names)
  verify_process_name(process_names)
  @process_names = process_names
  @unix_socket = Invoker::IPC::UnixClient.new
end

Public Instance Methods

run() click to toggle source
# File lib/invoker/cli/tail.rb, line 10
def run
  socket = @unix_socket.send_and_wait('tail', process_names: process_names)
  trap('INT') { socket.close }
  loop do
    message = read_next_line(socket)
    break unless message
    puts message.tail_line
  end
end

Private Instance Methods

read_next_line(socket) click to toggle source
# File lib/invoker/cli/tail.rb, line 28
def read_next_line(socket)
  Invoker::IPC.message_from_io(socket)
rescue
  nil
end
verify_process_name(process_names) click to toggle source
# File lib/invoker/cli/tail.rb, line 22
def verify_process_name(process_names)
  if process_names.empty?
    abort("Tail command requires one or more process name")
  end
end