<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/5680029c1b089786f249ba2a50d9ffd4280df7a6">https://github.com/macports/macports-base/commit/5680029c1b089786f249ba2a50d9ffd4280df7a6</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 5680029c1b089786f249ba2a50d9ffd4280df7a6
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Thu May 8 15:55:50 2025 +1000
<span style='display:block; white-space:pre;color:#404040;'> fetch_common: factor out code to separate tags
</span>---
src/port1.0/fetch_common.tcl | 32 ++++++++++++++++++++------------
1 file changed, 20 insertions(+), 12 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/fetch_common.tcl b/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index dc6e4654d..d33f58e65 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/fetch_common.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -80,6 +80,24 @@ proc portfetch::assemble_url {site distfile} {
</span> return "${site}[percent_encode ${distfile}]"
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Given a *_sites entry that possibly has a tag on the end, return a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# list consisting of the part of the entry preceding the tag, and the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# tag itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc portfetch::separate_tag {element} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # tag will be after the last colon after the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # first slash after the ://
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set lastcolon [string last : $element]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set aftersep [expr {[string first : $element] + 3}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set firstslash [string first / $element $aftersep]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$firstslash != -1 && $firstslash < $lastcolon} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set tag [string range $element ${lastcolon}+1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set element [string range $element 0 ${lastcolon}-1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set tag ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [list $element $tag]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # For a given mirror site type, e.g. "gnu" or "x11", check to see if there's a
# pre-registered set of sites, and if so, return them.
proc portfetch::mirror_sites {mirrors tag subdir mirrorfile} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -102,21 +120,11 @@ proc portfetch::mirror_sites {mirrors tag subdir mirrorfile} {
</span>
# here we have the chance to take a look at tags, that possibly
# have been assigned in mirror_sites.tcl
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # tag will be after the last colon after the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # first slash after the ://
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set lastcolon [string last : $element]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set aftersep [expr {[string first : $element] + 3}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set firstslash [string first / $element $aftersep]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {$firstslash != -1 && $firstslash < $lastcolon} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set mirror_tag [string range $element [expr {$lastcolon + 1}] end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set element [string range $element 0 [expr {$lastcolon - 1}]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set mirror_tag ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lassign [separate_tag $element] element mirror_tag
</span>
# if the URL has $name embedded, kill any mirror_tag that may have been added
# since a mirror_tag and $name are incompatible
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[regexp $name_re $element]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$mirror_tag ne "" && [regexp $name_re $element]} {
</span> set mirror_tag ""
}
</pre><pre style='margin:0'>
</pre>