From db87d8270913402654528e23677d09027396f48b Mon Sep 17 00:00:00 2001 From: Alexey Vasiliev Date: Fri, 15 Jul 2022 15:36:15 +0300 Subject: [PATCH] use trap_signal in run --- spec/config_spec.cr | 8 -------- src/kemal.cr | 16 +++++++--------- src/kemal/config.cr | 4 +--- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/spec/config_spec.cr b/spec/config_spec.cr index bbb3788..daa6849 100644 --- a/spec/config_spec.cr +++ b/spec/config_spec.cr @@ -40,14 +40,6 @@ describe "Config" do config.shutdown_message.should eq true end - it "toggles the disable trap signal" do - config = Kemal.config - config.disable_trap_signal = false - config.disable_trap_signal.should eq false - config.disable_trap_signal = true - config.disable_trap_signal.should eq true - end - it "adds custom options" do config = Kemal.config ARGV.push("--test") diff --git a/src/kemal.cr b/src/kemal.cr index d686481..9222fe6 100644 --- a/src/kemal.cr +++ b/src/kemal.cr @@ -7,18 +7,18 @@ require "./kemal/helpers/*" module Kemal # Overload of `self.run` with the default startup logging. - def self.run(port : Int32?, args = ARGV) - self.run(port, args) { } + def self.run(port : Int32?, args = ARGV, trap_signal : Bool = true) + self.run(port, args, trap_signal) { } end # Overload of `self.run` without port. - def self.run(args = ARGV) - self.run(nil, args: args) + def self.run(args = ARGV, trap_signal : Bool = true) + self.run(nil, args: args, trap_signal: trap_signal) end # Overload of `self.run` to allow just a block. def self.run(args = ARGV, &block) - self.run(nil, args: args, &block) + self.run(nil, args: args, trap_signal: true, &block) end # The command to run a `Kemal` application. @@ -27,7 +27,7 @@ module Kemal # # To use custom command line arguments, set args to nil # - def self.run(port : Int32? = nil, args = ARGV, &block) + def self.run(port : Int32? = nil, args = ARGV, trap_signal : Bool = true, &block) Kemal::CLI.new args config = Kemal.config config.setup @@ -36,7 +36,7 @@ module Kemal # Test environment doesn't need to have signal trap and logging. if config.env != "test" setup_404 - setup_trap_signal + setup_trap_signal if trap_signal end server = config.server ||= HTTP::Server.new(config.handlers) @@ -89,8 +89,6 @@ module Kemal end private def self.setup_trap_signal - return if Kemal.config.disable_trap_signal - Signal::INT.trap do log "#{Kemal.config.app_name} is going to take a rest!" if Kemal.config.shutdown_message Kemal.stop diff --git a/src/kemal/config.cr b/src/kemal/config.cr index e61b221..23372dd 100644 --- a/src/kemal/config.cr +++ b/src/kemal/config.cr @@ -21,7 +21,7 @@ module Kemal {% end %} property host_binding, ssl, port, env, public_folder, logging, running - property always_rescue, server : HTTP::Server?, extra_options, shutdown_message, disable_trap_signal + property always_rescue, server : HTTP::Server?, extra_options, shutdown_message property serve_static : (Bool | Hash(String, Bool)) property static_headers : (HTTP::Server::Response, String, File::Info -> Void)? property powered_by_header : Bool = true, app_name @@ -41,7 +41,6 @@ module Kemal @default_handlers_setup = false @running = false @shutdown_message = true - @disable_trap_signal = false @handler_position = 0 end @@ -62,7 +61,6 @@ module Kemal @router_included = false @handler_position = 0 @default_handlers_setup = false - @disable_trap_signal = false HANDLERS.clear CUSTOM_HANDLERS.clear FILTER_HANDLERS.clear