<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/e1f8b329074f88a9c75c1f4b04fb4c05c2380fca">https://github.com/macports/macports-base/commit/e1f8b329074f88a9c75c1f4b04fb4c05c2380fca</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new e1f8b32  Catch signals at the top level
</span>e1f8b32 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e1f8b329074f88a9c75c1f4b04fb4c05c2380fca
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun Dec 11 00:48:42 2016 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Catch signals at the top level
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Print a simple message acknowledging the signal and exit, instead of
</span><span style='display:block; white-space:pre;color:#404040;'>    printing a backtrace.
</span>---
 src/port/port.tcl | 40 +++++++++++++++++++++++++++++++++++-----
 1 file changed, 35 insertions(+), 5 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port/port.tcl b/src/port/port.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 74b4728..c95b612 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5707,14 +5707,44 @@ set global_options_base [array get global_options]
</span> # First process any remaining args as action(s)
 set exit_status 0
 if { [llength $remaining_args] > 0 } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # If there are remaining arguments, process those as a command
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set exit_status [process_cmd $remaining_args]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    try {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # If there are remaining arguments, process those as a command
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status [process_cmd $remaining_args]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } catch {{POSIX SIG SIGINT} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "process_cmd aborted: $::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error [msgcat::mc "Aborted: SIGINT received."]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set aborted_by_signal yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } catch {{POSIX SIG SIGTERM} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "process_cmd aborted: $::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error [msgcat::mc "Aborted: SIGTERM received."]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set aborted_by_signal yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } catch {{*} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "process_cmd failed: $::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error [msgcat::mc "process_cmd failed: %s" $eMessage]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 
 # Process any prescribed command files, including standard input
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ($exit_status == 0 || [macports::ui_isset ports_processall]) && [info exists ui_options(ports_commandfiles)] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set exit_status [process_command_files $ui_options(ports_commandfiles)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ($exit_status == 0 || [macports::ui_isset ports_processall]) && [info exists ui_options(ports_commandfiles)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        && ![info exists aborted_by_signal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    try {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status [process_command_files $ui_options(ports_commandfiles)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } catch {{POSIX SIG SIGINT} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "process_command_files aborted: $::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error [msgcat::mc "Aborted: SIGINT received."]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } catch {{POSIX SIG SIGTERM} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "process_command_files aborted: $::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error [msgcat::mc "Aborted: SIGTERM received."]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } catch {{*} eCode eMessage} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "process_command_files failed: $::errorInfo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error [msgcat::mc "process_command_files failed: %s" $eMessage]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set exit_status 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 if {$exit_status == -999} {
     set exit_status 0
</pre><pre style='margin:0'>

</pre>