Created
November 2, 2025 20:32
-
-
Save jmroot/f7ec18f982b3a1fed1f823f78b9affe0 to your computer and use it in GitHub Desktop.
Diff port dependencies
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #! /usr/bin/env port-tclsh | |
| package require macports | |
| package require registry2 | |
| mportinit | |
| set portname [lindex $argv 0] | |
| set regref [lindex [registry::entry installed $portname] 0] | |
| set requested_variants [$regref requested_variants] | |
| set requested_variations [macports::_variants_to_variations $requested_variants] | |
| set installed_mport [mportopen_installed [$regref name] [$regref version] [$regref revision] [$regref variants] {}] | |
| set installed_portinfo [mportinfo $installed_mport] | |
| lassign [mportlookup $portname] portname cur_portinfo | |
| set cur_mport [mportopen [dict get $cur_portinfo porturl] [dict create subport $portname] $requested_variations] | |
| set cur_portinfo [mportinfo $cur_mport] | |
| puts "Port name: $portname\n" | |
| puts "Installed variants: [dict get $installed_portinfo canonical_active_variants]" | |
| puts "New variants: [dict get $cur_portinfo canonical_active_variants]\n" | |
| foreach deptype $macports::all_dep_types { | |
| set installed_deps [expr {[dict exists $installed_portinfo $deptype] ? [dict get $installed_portinfo $deptype] : {}}] | |
| set cur_deps [expr {[dict exists $cur_portinfo $deptype] ? [dict get $cur_portinfo $deptype] : {}}] | |
| if {$installed_deps ne $cur_deps} { | |
| puts "Installed ${deptype}: $installed_deps" | |
| puts "New ${deptype}: $cur_deps" | |
| foreach dep $cur_deps { | |
| if {$dep ni $installed_deps} { | |
| puts "Added to ${deptype}: $dep" | |
| } | |
| } | |
| foreach dep $installed_deps { | |
| if {$dep ni $cur_deps} { | |
| puts "Removed from ${deptype}: $dep" | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment