Add cli
This commit is contained in:
parent
4f412f0f3c
commit
a44339cc34
|
@ -0,0 +1,107 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
require 'optparse'
|
||||||
|
require 'json'
|
||||||
|
require 'burlesque'
|
||||||
|
|
||||||
|
BANNER = <<-EOL
|
||||||
|
Burlesque Ruby client v.#{Burlesque::VERSION}
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
Publish:
|
||||||
|
$ bsq pub urgent "Process this message as soon as possible!"
|
||||||
|
or
|
||||||
|
$ cat urgent-183.txt | bsq pub urgent
|
||||||
|
Subscribe:
|
||||||
|
$ bsq sub urgent > urgent-184.txt
|
||||||
|
Status:
|
||||||
|
$ bsq status
|
||||||
|
Debug:
|
||||||
|
$ bsq debug
|
||||||
|
|
||||||
|
Options:
|
||||||
|
EOL
|
||||||
|
|
||||||
|
def error msg = nil
|
||||||
|
unless msg.nil?
|
||||||
|
puts "\033[31mError: #{msg}\e[0m\n\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
puts $options.help
|
||||||
|
exit(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
Burlesque.configure
|
||||||
|
|
||||||
|
$options = OptionParser.new do |opts|
|
||||||
|
opts.banner = BANNER
|
||||||
|
|
||||||
|
opts.on('-h', '--host [HOST]', 'Burlesque host') do |val|
|
||||||
|
Burlesque.config.host = val
|
||||||
|
end
|
||||||
|
|
||||||
|
opts.on('-p', '--port [PORT]', Integer, 'Burlesque port') do |val|
|
||||||
|
Burlesque.config.port = val
|
||||||
|
end
|
||||||
|
|
||||||
|
opts.on('-t', '--timeout [TIMEOUT]', Integer, 'Subscription timeout') do |val|
|
||||||
|
Burlesque.config.timeout = val
|
||||||
|
end
|
||||||
|
|
||||||
|
opts.on('-v', '--version', 'Display Burlesque Ruby client version') do
|
||||||
|
puts Burlesque::VERSION
|
||||||
|
exit(0)
|
||||||
|
end
|
||||||
|
|
||||||
|
opts.on('--help', 'Display this help message') do
|
||||||
|
puts $options.help
|
||||||
|
exit(0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
|
$options.parse!
|
||||||
|
rescue OptionParser::InvalidOption => e
|
||||||
|
error(e.message)
|
||||||
|
end
|
||||||
|
|
||||||
|
client = Burlesque::Client.new
|
||||||
|
|
||||||
|
case ARGV[0]
|
||||||
|
when 'pub'
|
||||||
|
queue, msg = nil, nil
|
||||||
|
|
||||||
|
case ARGV.length
|
||||||
|
when 3
|
||||||
|
queue = ARGV[1]
|
||||||
|
msg = ARGV[2]
|
||||||
|
when 2
|
||||||
|
queue = ARGV[1]
|
||||||
|
msg = STDIN.read
|
||||||
|
else
|
||||||
|
error
|
||||||
|
end
|
||||||
|
|
||||||
|
ok = client.publish(queue, msg)
|
||||||
|
exit(ok ? 0 : 1)
|
||||||
|
when 'sub'
|
||||||
|
queue = nil
|
||||||
|
|
||||||
|
if ARGV.length == 2
|
||||||
|
queue = ARGV[1]
|
||||||
|
else
|
||||||
|
error
|
||||||
|
end
|
||||||
|
|
||||||
|
res = client.subscribe(queue)
|
||||||
|
if res.nil?
|
||||||
|
exit(1)
|
||||||
|
else
|
||||||
|
puts res[:message]
|
||||||
|
end
|
||||||
|
when 'status'
|
||||||
|
puts JSON.pretty_generate(client.status)
|
||||||
|
when 'debug'
|
||||||
|
puts JSON.pretty_generate(client.status)
|
||||||
|
else
|
||||||
|
error
|
||||||
|
end
|
Loading…
Reference in New Issue