exe/tamashii-manager
#!/usr/bin/env ruby
require 'rack'
require 'optparse'
require 'tamashii/manager'
options = {
Port: ENV['PORT'] || 3000,
Host: '0.0.0.0',
AccessLog: []
}
OptionParser.new do |opts|
opts.on('-v', '--version', 'Display Tamashii::Manager version') do
puts "Tamashii::Manager #{Tamashii::Manager::VERSION}"
exit
end
opts.on('-h', '--help') do
puts opts
exit
end
# rubocop:disable Metrics/LineLength
opts.separator ''
opts.on('-s', '--server SERVER', 'Run Tamashii::Manager server') { |name| handlers.unshift(name.to_s) }
opts.on('-o', '--host HOST', 'The listen on HOST (default: 0.0.0.0)') { |host| options[:Host] = host.to_s }
opts.on('-p', '--port PORT', 'The listen on PORT (default: 3000)') { |port| options[:Port] = port.to_i }
opts.on('-C', '--config FILE', 'The external configuration file') do |config|
if File.exist? config
require config
options[:Port] = Tamashii::Manager::Config.port
end
end
# rubocop:enable Metrics/LineLength
opts.parse! ARGV
end
begin
config = Tamashii::Manager::Config
case config.auth_type
when :token
# rubocop:disable Metrics/LineLength
raise LoadError, 'Token authorization require to set token' if config.token.nil?
# rubocop:enable Metrics/LineLength
end
Rack::Handler.default.run Tamashii::Manager.server, options
rescue LoadError => e
# TODO: Improve error message
STDERR.puts e
end