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…
	
	Add table
		Add a link
		
	
		Reference in a new issue