mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
Update CLI to handle missing ssl_key and ssl_cert
This commit is contained in:
parent
3e27e15e29
commit
7ffa6700de
2 changed files with 25 additions and 10 deletions
|
@ -3,9 +3,7 @@ require "./kemal/middleware/*"
|
||||||
|
|
||||||
at_exit do
|
at_exit do
|
||||||
Kemal::CLI.new
|
Kemal::CLI.new
|
||||||
|
|
||||||
config = Kemal.config
|
config = Kemal.config
|
||||||
|
|
||||||
logger = Kemal::Logger.new
|
logger = Kemal::Logger.new
|
||||||
config.add_handler logger
|
config.add_handler logger
|
||||||
config.add_handler Kemal::StaticFileHandler.new(config.public_folder)
|
config.add_handler Kemal::StaticFileHandler.new(config.public_folder)
|
||||||
|
|
|
@ -3,33 +3,50 @@ require "option_parser"
|
||||||
module Kemal
|
module Kemal
|
||||||
class CLI
|
class CLI
|
||||||
def initialize
|
def initialize
|
||||||
ssl = nil
|
@ssl_enabled = false
|
||||||
|
@key_file = nil
|
||||||
|
@cert_file = nil
|
||||||
|
@config = Kemal.config
|
||||||
|
parse
|
||||||
|
configure_ssl
|
||||||
|
end
|
||||||
|
|
||||||
|
def parse
|
||||||
OptionParser.parse! do |opts|
|
OptionParser.parse! do |opts|
|
||||||
opts.on("-b HOST", "--bind HOST", "HTTP host to bind (defaults to 0.0.0.0)") do |host_binding|
|
opts.on("-b HOST", "--bind HOST", "HTTP host to bind (defaults to 0.0.0.0)") do |host_binding|
|
||||||
Kemal.config.host_binding = host_binding
|
@config.host_binding = host_binding
|
||||||
end
|
end
|
||||||
opts.on("-p PORT", "--port PORT", "HTTP port to listen connections (defaults to 3000)") do |opt_port|
|
opts.on("-p PORT", "--port PORT", "HTTP port to listen connections (defaults to 3000)") do |opt_port|
|
||||||
Kemal.config.port = opt_port.to_i
|
@config.port = opt_port.to_i
|
||||||
end
|
end
|
||||||
opts.on("-e ENV", "--environment ENV", "Running environment [development, production] (defaults to development). Set `production` to boost performance") do |env|
|
opts.on("-e ENV", "--environment ENV", "Running environment [development, production] (defaults to development). Set `production` to boost performance") do |env|
|
||||||
Kemal.config.env = env
|
@config.env = env
|
||||||
end
|
end
|
||||||
opts.on("-s", "--ssl", "Enables SSL") do
|
opts.on("-s", "--ssl", "Enables SSL") do
|
||||||
ssl = Kemal::Middleware::SSL.new
|
@ssl_enabled = true
|
||||||
end
|
end
|
||||||
opts.on("--ssl-key-file FILE", "SSL key file") do |key_file|
|
opts.on("--ssl-key-file FILE", "SSL key file") do |key_file|
|
||||||
ssl.not_nil!.set_key_file key_file
|
@key_file = key_file
|
||||||
end
|
end
|
||||||
opts.on("--ssl-cert-file FILE", "SSL certificate file") do |cert_file|
|
opts.on("--ssl-cert-file FILE", "SSL certificate file") do |cert_file|
|
||||||
ssl.not_nil!.set_cert_file cert_file
|
@cert_file = cert_file
|
||||||
end
|
end
|
||||||
opts.on("-h", "--help", "Shows this help") do
|
opts.on("-h", "--help", "Shows this help") do
|
||||||
puts opts
|
puts opts
|
||||||
exit 0
|
exit 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Kemal.config.ssl = ssl.not_nil!.context if ssl
|
def configure_ssl
|
||||||
|
if @ssl_enabled
|
||||||
|
puts "SSL Key Not Found"; exit unless @key_file
|
||||||
|
puts "SSL Certificate Not Found"; exit unless @cert_file
|
||||||
|
ssl = Kemal::Middleware::SSL.new
|
||||||
|
ssl.set_key_file @key_file.not_nil!.to_slice
|
||||||
|
ssl.set_cert_file @cert_file.not_nil!.to_slice
|
||||||
|
Kemal.config.ssl = ssl.context
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue