class Invoker::CLI
Public Class Methods
default_start_command?(args)
click to toggle source
# File lib/invoker/cli.rb, line 142 def self.default_start_command?(args) command_name = args.first command_name && !command_name.match(/^-/) && !valid_tasks.include?(command_name) end
start(*args)
click to toggle source
Calls superclass method
# File lib/invoker/cli.rb, line 6 def self.start(*args) cli_args = args.flatten # If it is not a valid task, it is probably file argument if default_start_command?(cli_args) args = [cli_args.unshift("start")] end super(*args) end
valid_tasks()
click to toggle source
# File lib/invoker/cli.rb, line 149 def self.valid_tasks tasks.keys + %w(help install restart) end
Public Instance Methods
add(name)
click to toggle source
# File lib/invoker/cli.rb, line 66 def add(name) unix_socket.send_command('add', process_name: name) end
add_http(name, port, ip = nil)
click to toggle source
# File lib/invoker/cli.rb, line 71 def add_http(name, port, ip = nil) unix_socket.send_command('add_http', process_name: name, port: port, ip: ip) end
list()
click to toggle source
# File lib/invoker/cli.rb, line 105 def list if options[:wait] Signal.trap("INT") { exit(0) } loop do puts "\e[H\e[2J" unix_socket.send_command('list') do |response_object| Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_table } end sleep(5) end else unix_socket.send_command('list') do |response_object| if options[:raw] Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_raw_text } else Invoker::ProcessPrinter.new(response_object).tap { |printer| printer.print_table } end end end end
log(process_name)
click to toggle source
# File lib/invoker/cli.rb, line 82 def log(process_name) system("egrep -a '^#{process_name}' #{Invoker.daemon.log_file}") end
reload(name)
click to toggle source
# File lib/invoker/cli.rb, line 90 def reload(name) signal = options[:signal] || 'INT' unix_socket.send_command('reload', process_name: name, signal: signal) end
remove(name)
click to toggle source
# File lib/invoker/cli.rb, line 130 def remove(name) signal = options[:signal] || 'INT' unix_socket.send_command('remove', process_name: name, signal: signal) end
setup()
click to toggle source
# File lib/invoker/cli.rb, line 19 def setup Invoker::Power::Setup.install(get_tld(options)) end
start(file = nil)
click to toggle source
# File lib/invoker/cli.rb, line 51 def start(file = nil) Invoker.setup_config_location port = options[:port] || 9000 Invoker.daemonize = options[:daemon] Invoker.nocolors = options[:nocolors] Invoker.certificate = options[:certificate] Invoker.private_key = options[:private_key] Invoker.load_invoker_config(file, port) warn_about_notification pinger = Invoker::CLI::Pinger.new(unix_socket) abort("Invoker is already running".colorize(:red)) if pinger.invoker_running? Invoker.commander.start_manager end
stop()
click to toggle source
# File lib/invoker/cli.rb, line 136 def stop Invoker.daemon.stop end
tail(*names)
click to toggle source
# File lib/invoker/cli.rb, line 76 def tail(*names) tailer = Invoker::CLI::Tail.new(names) tailer.run end
uninstall()
click to toggle source
# File lib/invoker/cli.rb, line 31 def uninstall Invoker::Power::Setup.uninstall end
version()
click to toggle source
# File lib/invoker/cli.rb, line 25 def version Invoker::Logger.puts Invoker::VERSION end
Private Instance Methods
get_tld(options)
click to toggle source
TODO(kgrz): the default TLD option is duplicated in both this file and lib/invoker.rb May be assign this to a constant?
# File lib/invoker/cli.rb, line 155 def get_tld(options) if options[:tld] && !options[:tld].empty? options[:tld] else 'test' end end
unix_socket()
click to toggle source
# File lib/invoker/cli.rb, line 163 def unix_socket Invoker::IPC::UnixClient.new end
warn_about_libnotify()
click to toggle source
# File lib/invoker/cli.rb, line 175 def warn_about_libnotify require "libnotify" rescue LoadError Invoker::Logger.puts "You can install libnotify gem for Invoker notifications "\ "via system tray".colorize(:red) end
warn_about_notification()
click to toggle source
# File lib/invoker/cli.rb, line 167 def warn_about_notification if Invoker.darwin? warn_about_terminal_notifier else warn_about_libnotify end end
warn_about_terminal_notifier()
click to toggle source
# File lib/invoker/cli.rb, line 182 def warn_about_terminal_notifier if Invoker.darwin? command_path = `which terminal-notifier` if !command_path || command_path.empty? Invoker::Logger.puts "You can enable OSX notification for processes "\ "by installing terminal-notifier gem".colorize(:red) end end end