<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/113218e8b24cd88ce72284cdaeee9d7227a71c51">https://github.com/macports/macports-base/commit/113218e8b24cd88ce72284cdaeee9d7227a71c51</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 113218e8b24cd88ce72284cdaeee9d7227a71c51
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Sat Jul 6 15:14:44 2024 +1000

<span style='display:block; white-space:pre;color:#404040;'>    re-execute selfupdate when base was updated
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Co-authored-by: Joshua Root <jmr@macports.org>
</span>---
 src/port/port.tcl | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 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 b4225c374..fa660ab9b 100755
</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;'>@@ -2438,11 +2438,35 @@ proc action_selfupdate { action portlist opts } {
</span>     }
 
     if {$base_updated} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # exit immediately if in batch/shell mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Base was upgraded, re-execute now to trigger sync and/or exit batch mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[info exists ui_options(ports_commandfiles)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Batch mode, just exit since re-executing all commands in the file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # may not be correct.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return -999
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # When re-executing, strip the -f flag to prevent an endless loop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set new_argv {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach arg $::argv {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[string match -nocase {-[a-z]*} $arg]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # map the -f flag to nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set arg [string map {f ""} $arg]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {$arg eq "-"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # if -f was specified alone, just remove the flag completely
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend new_argv $arg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # If this returns at all, it failed. Just catch any error to avoid
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # printing a backtrace at the top level.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        catch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            execl $::argv0 $new_argv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "Failed to re-execute selfupdate, please run 'sudo port selfupdate' manually."
</span>         return -999
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return 0
</span>     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    return 0
</span> }
 
 
</pre><pre style='margin:0'>

</pre>