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

</pre>
<p><a href="https://github.com/macports/mpbb/commit/5e22dd40d461e2cc8360c00aecab3f3f7f8f2d53">https://github.com/macports/mpbb/commit/5e22dd40d461e2cc8360c00aecab3f3f7f8f2d53</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 5e22dd4  mirror-multi: add option to include subports
</span>5e22dd4 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 5e22dd40d461e2cc8360c00aecab3f3f7f8f2d53
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Mar 18 17:51:04 2025 +1100

<span style='display:block; white-space:pre;color:#404040;'>    mirror-multi: add option to include subports
</span>---
 tools/mirror-multi.tcl | 64 +++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 50 insertions(+), 14 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/mirror-multi.tcl b/tools/mirror-multi.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 6af9d45..24efac9 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tools/mirror-multi.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/mirror-multi.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -399,42 +399,78 @@ proc mirror_port {portinfo} {
</span> }
 
 set mirrorcache_dir /tmp/mirrorcache
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[lindex $argv 0] eq "-c"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set mirrorcache_dir [lindex $argv 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set argv [lrange $argv 2 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set use_cachedir yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set include_subports no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set use_remotedb no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+while {[string match -* [lindex $argv 0]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    switch -- [lindex $argv 0] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -c {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set use_cachedir yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set mirrorcache_dir [lindex $argv 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set argv [lrange $argv 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -s {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set include_subports yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -r {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set use_remotedb yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set use_cachedir no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set mirrorcache_baseurl [lindex $argv 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set mirrorcache_credentials [lindex $argv 2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set argv [lrange $argv 2 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error "Unknown option [lindex $argv 0]"
</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;'>+    set argv [lrange $argv 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {$use_cachedir} {
</span>     rename check_mirror_done_local check_mirror_done
     rename set_mirror_done_local set_mirror_done
<span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {[lindex $argv 0] eq "-r"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set mirrorcache_baseurl [lindex $argv 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set mirrorcache_credentials [lindex $argv 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set argv [lrange $argv 3 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} elseif {$use_remotedb} {
</span>     rename check_mirror_done_remote check_mirror_done
     rename set_mirror_done_remote set_mirror_done
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set exitval 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach portname $argv {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc process_port {portname} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global processed
</span>     if {[dict exists $processed $portname]} {
         ui_msg "skipping ${portname}, already processed"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return
</span>     }
     if {[check_mirror_done $portname] == 1} {
         ui_msg "skipping ${portname}, previously mirrored"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return
</span>     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    global exitval
</span>     set result [mportlookup $portname]
     if {[llength $result] < 2} {
         ui_error "No such port: $portname"
         set exitval 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[mirror_port [lindex $result 1]] != 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set portinfo [lindex $result 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[mirror_port $portinfo] != 0} {
</span>         set exitval 1
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global include_subports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$include_subports} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set subports [expr {[dict exists $portinfo subports] ? [dict get $portinfo subports] : {}}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach subport $subports {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            process_port $subport
</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;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set exitval 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach portname $argv {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    process_port $portname
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[info exists mirrorcache_baseurl]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {$use_remotedb} {
</span>     write_status_dicts
 }
 
</pre><pre style='margin:0'>

</pre>