From ad9307c0a6a211d3c91ef531a676ed77ba863502 Mon Sep 17 00:00:00 2001 From: Camden Narzt Date: Mon, 14 Apr 2025 14:20:34 -0600 Subject: [PATCH 1/6] DRY concat_spawn_output_and_logs --- lib/daemon_controller.rb | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/lib/daemon_controller.rb b/lib/daemon_controller.rb index 5781094..ddf176c 100644 --- a/lib/daemon_controller.rb +++ b/lib/daemon_controller.rb @@ -806,7 +806,9 @@ def monotonic_time end def signal_termination_message(process_status) - if process_status.signaled? + if process_status.nil? + return + elsif process_status.signaled? "terminated with signal #{signal_name_for(process_status.termsig)}" else "exited with status #{process_status.exitstatus}" @@ -826,30 +828,22 @@ def signal_name_for(num) end def concat_spawn_output_and_logs(output, logs, exit_status = nil, suffix_message = nil) + fmt = ->(prefix=nil) {[ + prefix, + signal_termination_message(exit_status), + suffix_message + ].compact.join("; ")} + if output.nil? && logs.nil? - result_inner = [ - "logs not available", - exit_status ? signal_termination_message(exit_status) : nil, - suffix_message - ].compact.join("; ") - "(#{result_inner})" - elsif (output && output.empty? && logs && logs.empty?) || (output && output.empty? && logs.nil?) || (output.nil? && logs && logs.empty?) - result_inner = [ - "logs empty", - exit_status ? signal_termination_message(exit_status) : nil, - suffix_message - ].compact.join("; ") - "(#{result_inner})" + "(#{fmt.call("logs not available")})" + elsif (output&.empty? && logs&.empty?) || (output&.empty? && logs.nil?) || (output.nil? && logs&.empty?) + "(#{fmt.call("logs empty")})" + elsif (result_inner = fmt.call).empty? + "#{output}\n#{logs}".strip + elsif logs&.empty? + "#{output}\n(#{result_inner})".strip else - result = ((output || "") + "\n" + (logs || "")).strip - result_suffix = [ - exit_status ? signal_termination_message(exit_status) : nil, - suffix_message - ].compact.join("; ") - if !result_suffix.empty? - result << "\n(#{result_suffix})" - end - result + "#{output}\n#{logs}\n(#{result_inner})".strip end end From d634a7b4ecdc570a6fae772886c5c8f2b51d2f9c Mon Sep 17 00:00:00 2001 From: Hongli Lai Date: Mon, 10 Nov 2025 14:55:31 +0100 Subject: [PATCH 2/6] address comments --- lib/daemon_controller.rb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/daemon_controller.rb b/lib/daemon_controller.rb index 85f8104..83b90b1 100644 --- a/lib/daemon_controller.rb +++ b/lib/daemon_controller.rb @@ -791,7 +791,7 @@ def monotonic_time def signal_termination_message(process_status) if process_status.nil? - return + nil elsif process_status.signaled? "terminated with signal #{signal_name_for(process_status.termsig)}" else @@ -812,11 +812,13 @@ def signal_name_for(num) end def concat_spawn_output_and_logs(output, logs, exit_status = nil, suffix_message = nil) - fmt = ->(prefix=nil) {[ - prefix, - signal_termination_message(exit_status), - suffix_message - ].compact.join("; ")} + fmt = lambda do |prefix = nil| + [ + prefix, + signal_termination_message(exit_status), + suffix_message + ].compact.join("; ") + end if output.nil? && logs.nil? "(#{fmt.call("logs not available")})" From 5fc54c0eae2c091f195a93c66599a8c837ed4764 Mon Sep 17 00:00:00 2001 From: Hongli Lai Date: Mon, 10 Nov 2025 14:59:45 +0100 Subject: [PATCH 3/6] do not use Ruby 2.3 safe navigation syntax --- lib/daemon_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/daemon_controller.rb b/lib/daemon_controller.rb index 83b90b1..83f442a 100644 --- a/lib/daemon_controller.rb +++ b/lib/daemon_controller.rb @@ -822,11 +822,11 @@ def concat_spawn_output_and_logs(output, logs, exit_status = nil, suffix_message if output.nil? && logs.nil? "(#{fmt.call("logs not available")})" - elsif (output&.empty? && logs&.empty?) || (output&.empty? && logs.nil?) || (output.nil? && logs&.empty?) + elsif (output && output.empty? && logs && logs.empty?) || (output && output.empty? && logs.nil?) || (output.nil? && logs && logs.empty?) "(#{fmt.call("logs empty")})" elsif (result_inner = fmt.call).empty? "#{output}\n#{logs}".strip - elsif logs&.empty? + elsif logs && logs.empty? "#{output}\n(#{result_inner})".strip else "#{output}\n#{logs}\n(#{result_inner})".strip From 0bf474efed3b1ee4507ff1a5dbb48400f80ec929 Mon Sep 17 00:00:00 2001 From: Hongli Lai Date: Mon, 10 Nov 2025 15:02:34 +0100 Subject: [PATCH 4/6] ... --- lib/daemon_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/daemon_controller.rb b/lib/daemon_controller.rb index 83f442a..43788c3 100644 --- a/lib/daemon_controller.rb +++ b/lib/daemon_controller.rb @@ -812,9 +812,9 @@ def signal_name_for(num) end def concat_spawn_output_and_logs(output, logs, exit_status = nil, suffix_message = nil) - fmt = lambda do |prefix = nil| + fmt = lambda do |main_message = nil| [ - prefix, + main_message, signal_termination_message(exit_status), suffix_message ].compact.join("; ") From 82580e54f5bec0fe2902eff6218f8e6d68852bd1 Mon Sep 17 00:00:00 2001 From: Hongli Lai Date: Mon, 10 Nov 2025 15:03:50 +0100 Subject: [PATCH 5/6] ... --- lib/daemon_controller.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/daemon_controller.rb b/lib/daemon_controller.rb index 43788c3..214140b 100644 --- a/lib/daemon_controller.rb +++ b/lib/daemon_controller.rb @@ -790,9 +790,7 @@ def monotonic_time end def signal_termination_message(process_status) - if process_status.nil? - nil - elsif process_status.signaled? + if process_status.signaled? "terminated with signal #{signal_name_for(process_status.termsig)}" else "exited with status #{process_status.exitstatus}" @@ -815,7 +813,7 @@ def concat_spawn_output_and_logs(output, logs, exit_status = nil, suffix_message fmt = lambda do |main_message = nil| [ main_message, - signal_termination_message(exit_status), + exit_status ? signal_termination_message(exit_status) : nil, suffix_message ].compact.join("; ") end From ff346079f67e18a31da3e58a7bf7961d0ed1e525 Mon Sep 17 00:00:00 2001 From: Hongli Lai Date: Mon, 10 Nov 2025 15:23:02 +0100 Subject: [PATCH 6/6] ... --- lib/daemon_controller.rb | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/daemon_controller.rb b/lib/daemon_controller.rb index 214140b..a670099 100644 --- a/lib/daemon_controller.rb +++ b/lib/daemon_controller.rb @@ -810,7 +810,7 @@ def signal_name_for(num) end def concat_spawn_output_and_logs(output, logs, exit_status = nil, suffix_message = nil) - fmt = lambda do |main_message = nil| + format_full_suffix_message = lambda do |main_message = nil| [ main_message, exit_status ? signal_termination_message(exit_status) : nil, @@ -819,15 +819,18 @@ def concat_spawn_output_and_logs(output, logs, exit_status = nil, suffix_message end if output.nil? && logs.nil? - "(#{fmt.call("logs not available")})" + "(#{format_full_suffix_message.call("logs not available")})" elsif (output && output.empty? && logs && logs.empty?) || (output && output.empty? && logs.nil?) || (output.nil? && logs && logs.empty?) - "(#{fmt.call("logs empty")})" - elsif (result_inner = fmt.call).empty? - "#{output}\n#{logs}".strip - elsif logs && logs.empty? - "#{output}\n(#{result_inner})".strip + "(#{format_full_suffix_message.call("logs empty")})" else - "#{output}\n#{logs}\n(#{result_inner})".strip + full_suffix_message = format_full_suffix_message.call + if full_suffix_message.empty? + "#{output}\n#{logs}".strip + elsif logs && logs.empty? + "#{output}\n(#{full_suffix_message})".strip + else + "#{output}\n#{logs}\n(#{full_suffix_message})".strip + end end end