class Slnky::CLI::Command
Public Instance Methods
amqp(msg)
click to toggle source
# File lib/slnky/cli/command.rb, line 44 def amqp(msg) response = msg.response tx = Slnky::Transport.instance tx.start!(self) do |_| queue = tx.queue(response, 'response', durable: false, auto_delete: true, routing_key: response) queue.subscribe do |raw| message = Slnky::Message.parse(raw) level = message.level.to_sym if level == :complete tx.stop! elsif level == :start # start tracking responders? else out level, message.message, message.service end end EventMachine.add_periodic_timer(timeout) do out :error, "timed out after #{timeout} seconds" tx.stop!('Timed out') end EventMachine.add_timer(1) do puts "sending request:".colorize(:light_white) Slnky.notify(msg) end end # sleep 10 # Slnky.notify(msg) end
execute()
click to toggle source
# File lib/slnky/cli/command.rb, line 26 def execute @name = service Slnky::Config.configure(@name, environment: environment) data = { name: "slnky.#{service}.command", command: service == 'help' ? nil : command, args: args, response: "command-#{$$}", } msg = Slnky::Message.new(data) puts JSON.pretty_generate(msg.to_h) if dry_run? amqp(msg) unless dry_run? end
name()
click to toggle source
# File lib/slnky/cli/command.rb, line 40 def name @name end
out(level, message, service=nil)
click to toggle source
# File lib/slnky/cli/command.rb, line 77 def out(level, message, service=nil) service ||= Slnky::System.pid('local') lines = message.split("\n") lines.each do |line| str = service.colorize(:light_black) color = case level when :warn :yellow when :error :red else :white end str << (" [ %5s ] %s" % [level.to_s.upcase, line]).colorize(color) # puts "#{service} [#{level}] #{line}" puts str end end