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

</pre>
<p><a href="https://github.com/macports/macports-contrib/commit/47ba56927a5260660a9ccc47bf49ed5c995858a2">https://github.com/macports/macports-contrib/commit/47ba56927a5260660a9ccc47bf49ed5c995858a2</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 47ba569  port_cutleaves: use registry2 API
</span>47ba569 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 47ba56927a5260660a9ccc47bf49ed5c995858a2
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Dec 6 18:47:32 2024 +1100

<span style='display:block; white-space:pre;color:#404040;'>    port_cutleaves: use registry2 API
</span>---
 port_cutleaves/port_cutleaves.in | 98 +++++++++-------------------------------
 1 file changed, 22 insertions(+), 76 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/port_cutleaves/port_cutleaves.in b/port_cutleaves/port_cutleaves.in
</span><span style='display:block; white-space:pre;color:#808080;'>index ddbf524..19612e7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/port_cutleaves/port_cutleaves.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/port_cutleaves/port_cutleaves.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,7 +9,7 @@ set prefix "@prefix@"
</span> # - Procedures ---------------------------------------------------------------
 
 proc composite_version {port} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [version $port]_[revision $port][variants $port]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [$port version]_[$port revision][$port variants]
</span> }
 
 proc cut_leaves {{processed_leaves {}}} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,10 +23,10 @@ proc cut_leaves {{processed_leaves {}}} {
</span>     set to_process {}
     foreach leaf $leaves {
         set full_name [full_name $leaf]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[lsearch -exact $processed_leaves $full_name] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[dict exists $processed_leaves $full_name]} {
</span>             continue
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend processed_leaves    $full_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        dict set processed_leaves $full_name 1
</span>         lappend to_process          $leaf
     }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,9 +41,7 @@ proc cut_leaves {{processed_leaves {}}} {
</span>     set to_uninstall    {}
 
     foreach leaf $to_process {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set composite_version   [composite_version $leaf]
</span>         set full_name           [full_name $leaf]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set name                [name $leaf]
</span> 
         set status active
         if {![is_active $leaf]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -144,18 +142,17 @@ proc exclusions {file} {
</span> }
 
 proc full_name {port} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return "[name $port] @[composite_version $port]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return "[$port name] @[composite_version $port]"
</span> }
 
 proc is_active {port} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [lindex $port 4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [expr {[$port state] eq "installed"}]
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc collect_build_deps {installedvar} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    upvar $installedvar installed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc collect_build_deps {installed} {
</span>     global build_deps
     foreach i $installed {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set iname [name $i]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set iname [$i name]
</span>         if {[catch {set res [mportlookup $iname]} result]} {
             puts stderr "lookup of portname $iname failed: $result"
             exit 1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -177,9 +174,8 @@ proc collect_build_deps {installedvar} {
</span> 
 proc leaves {} {
     global option build_deps
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    registry::open_dep_map
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[catch {set installed [registry::installed]} result]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[catch {set installed [registry::entry imaged]} result]} {
</span>         return -code error $result
     } elseif {[catch {set exclusions [exclusions $option(F)]} result]} {
         if {![regexp {does not exist} $result]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -188,20 +184,15 @@ proc leaves {} {
</span>         set exclusions {}
     }
     if {$option(b)} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        collect_build_deps installed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        collect_build_deps $installed
</span>     }
 
     set leaves {}
     foreach port $installed {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${macports::registry.format} eq "receipt_sqlite"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set regref [registry::open_entry [name $port] [version $port] [revision $port] [variants $port] [epoch $port]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set regref [registry::open_entry [name $port] [version $port] [revision $port] [variants $port]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {![registry::property_retrieve $regref requested]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            && [registry::list_dependents [name $port]] eq ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![$port requested]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            && [$port dependents] eq {}
</span>             && ![should_be_excluded $port $exclusions]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            && (!$option(b) || ![dict exists $build_deps [name $port]])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            && (!$option(b) || ![dict exists $build_deps [$port name]])} {
</span>             lappend leaves $port
         }
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -220,18 +211,6 @@ proc list_leaves {} {
</span>     return 0
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc epoch {port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [lindex $port 5]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-proc name {port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [lindex $port 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-proc revision {port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [lindex $port 2]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> proc should_be_excluded {port exclusions} {
     foreach exclusion $exclusions {
         set full_name [full_name $port]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -247,48 +226,22 @@ proc uninstall {ports} {
</span> 
     set uninstalled {}
     foreach port $ports {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${macports::registry.format} eq "receipt_sqlite"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set regref [registry::open_entry [name $port] [version $port] [revision $port] [variants $port] [epoch $port]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[registry::run_target $regref uninstall {}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                lappend uninstalled [full_name $port]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                continue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set fullname [full_name $port]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[registry::run_target $port uninstall {}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend uninstalled $fullname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            continue
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[llength [info commands "registry_uninstall::uninstall"]] == 1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[llength [info commands "registry_uninstall::uninstall_composite"]] == 1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[catch {registry_uninstall::uninstall [name $port] [version $port] [revision $port] [variants $port] {}} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            result]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set exit_status 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    puts stderr "Error: $result"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    continue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[catch {registry_uninstall::uninstall [name $port] [composite_version $port] {}} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            result]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set exit_status 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    puts stderr "Error: $result"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    continue
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } elseif {[catch {portuninstall::uninstall [name $port] [composite_version $port] {}} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                         result]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set exit_status 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                puts stderr "Error: $result"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[catch {registry_uninstall::uninstall [$port name] [$port version] [$port revision] [$port variants] {}} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    result]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set exit_status 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            puts stderr "Error: $result"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            continue
</span>         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        lappend uninstalled [full_name $port]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend uninstalled $fullname
</span>     }
     return $uninstalled
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc variants {port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [lindex $port 3]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-proc version {port} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [lindex $port 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # - Main ---------------------------------------------------------------------
 
 package require cmdline
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -305,13 +258,6 @@ if {[catch {array set option [::cmdline::getoptions argv $options]}]} {
</span>     exit 1
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![file exists ${prefix}/bin/port-tclsh]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[catch {source ${prefix}/share/macports/Tcl/macports1.0/macports_fastload.tcl} result]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        puts stderr "Error: $result"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        exit 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> package require macports
 if {[catch {mportinit} result]} {
     puts stderr "Error: $result"
</pre><pre style='margin:0'>

</pre>