This repository has been archived by the owner on Jul 23, 2023. It is now read-only.
/
slanger
executable file
·68 lines (55 loc) · 2.42 KB
/
slanger
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env ruby -Ku
require 'optparse'
require 'bundler/setup'
require 'eventmachine'
options = {
api_host: '0.0.0.0', api_port: '4567', websocket_host: '0.0.0.0',
websocket_port: '8080', debug: false, redis_address: 'redis://0.0.0.0:6379/0'
}
OptionParser.new do |opts|
opts.on '-h', '--help', 'Display this screen' do
exit
end
opts.on '-k', '--app_key APP_KEY', "Pusher application key" do |k|
options[:app_key] = k
end
opts.on '-s', '--secret SECRET', "Pusher application secret" do |k|
options[:secret] = k
end
opts.on '-r', '--redis_address URL', "Address to bind to (Default: redis://127.0.0.1:6379/0)" do |h|
options[:redis_address] = h
end
opts.on '-a', '--api_host HOST', "API service address (Default: 0.0.0.0:4567)" do |p|
options[:api_host], options[:api_port] = p.split(':')
end
opts.on '-w', '--websocket_host HOST', "WebSocket service address (Default: 0.0.0.0:8080)" do |p|
options[:websocket_host], options[:websocket_port] = p.split(':')
end
opts.on "-v", "--[no-]verbose", "Run verbosely" do |v|
options[:debug] = v
end
end.parse!
%w<app_key secret>.each do |parameter|
raise RuntimeError.new "--#{parameter} STRING is a required argument. Use your Pusher #{parameter}." unless options[parameter.to_sym]
end
EM.run do
File.tap { |f| require f.expand_path(f.join(f.dirname(__FILE__),'..', 'slanger.rb')) }
Slanger::Config.load options
Slanger::Service.run
puts "\x1b[2J\x1b[H"
puts "\n"
puts " .d8888b. 888 "
puts " d88P Y88b 888 "
puts " Y88b. 888 "
puts ' "Y888b. 888 8888b. 88888b. .d88b. .d88b. 888d888 '
puts ' "Y88b. 888 "88b 888 "88b d88P"88b d8P Y8b 888P" '
puts ' "888 888 .d888888 888 888 888 888 88888888 888 '
puts " Y88b d88P 888 888 888 888 888 Y88b 888 Y8b. 888 "
puts ' "Y8888P" 888 "Y888888 888 888 "Y88888 "Y8888 888 '
puts " 888 "
puts " Y8b d88P "
puts ' "Y88P" '
puts "\n" * 2
puts "Slanger API server listening on port #{options[:api_port]}"
puts "Slanger WebSocket server listening on port #{options[:websocket_port]}"
end