module QB::CLI::Dev
Public Class Methods
req()
click to toggle source
# File lib/qb/cli/dev.rb, line 81 def self.req require 'net_http_unix' socket_path = QB::ROOT.join( 'tmp', 'dev-server.sock' ).read.chomp client = NetX::HTTPUnix.new "unix://#{ socket_path }" path = "/send" params = { receiver: 'File', method: 'basename', args: ['blah.exe', '.exe'], } headers = { "Content-Type" => "application/json", "Accept" => "application/json" } start = Time.now rsp = client.post path, params.to_json, headers delta = Time.now - start logger.trace "Response", delta: "#{ (delta * 1000).round }ms", code: rsp.code, body: rsp.body, result: JSON.load( rsp.body )['result'] end
serve(*args)
click to toggle source
# File lib/qb/cli/dev.rb, line 18 def self.serve *args require 'qb/ipc/rpc/server' logger.info "Starting up!", pid: Process.pid server = QB::IPC::RPC::Server.new server.start! logger.info "Got going...", pid: Process.pid, socket_path: server.socket_path.to_s QB::ROOT.join( 'tmp', 'dev-server.sock' ).write server.socket_path $dying = false # Needs to happen *after* starting server 'cause it sets traps when it # starts which seem to clobber these... [ :QUIT, :TERM, :INT ].each do |sig| Signal.trap sig do |sig| puts "Trapped #{ sig.inspect }" if $dying puts "Damn, just couldn't die... sorry." exit 1 end $dying = true end end until $dying # logger.info "still chuggin' along...", # pid: Process.pid, # socket_path: server.socket_path.to_s sleep 1 end # Doesn't work... # loop do # begin # logger.info "still chuggin' along...", # pid: Process.pid, # socket_path: server.socket_path.to_s # sleep 3 # rescue Interrupt # logger.info "Interrupted! So rude..." # break # end # end logger.info "Shuttin' 'er down boss...'" server.stop! FileUtils.rm( QB::ROOT.join( 'tmp', 'dev-server.sock' ) ) logger.info "Done-zo!" return 0 end