Module: Tkellem::SocketServer

Includes:
EM::Protocols::LineText2, EasyLogger
Defined in:
lib/tkellem/socket_server.rb

Overview

listens on the unix domain socket and executes admin commands

Instance Method Summary collapse

Methods included from EasyLogger

#failsafe, logger, logger=, trace, #trace, trace=

Instance Method Details

#log_nameObject



13
14
15
# File 'lib/tkellem/socket_server.rb', line 13

def log_name
  "admin"
end

#post_initObject



17
18
19
# File 'lib/tkellem/socket_server.rb', line 17

def post_init
  set_delimiter "\n"
end

#receive_line(line) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/tkellem/socket_server.rb', line 21

def receive_line(line)
  trace "admin socket: #{line}"
  TkellemBot.run_command(line, nil, nil) do |output|
    send_data("#{output}\n")
  end
  send_data("\0\n")
rescue => e
  send_data("Error running command: #{e}\n")
  e.backtrace.each { |l| send_data("#{l}\n") }
  send_data("\0\n")
end