mirror of
https://github.com/macports/mpbb.git
synced 2026-07-12 18:18:44 -07:00
tools: Support variants all port clients
Ports might change portgroups or supported architectures depending on their variant selection, so support variant passing for those tools. This is a dependency for mpbb list-subports to support variants.
This commit is contained in:
+15
-1
@@ -31,6 +31,15 @@
|
||||
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
proc split_variants {variants} {
|
||||
set result {}
|
||||
set l [regexp -all -inline -- {([-+])([[:alpha:]_]+[\w\.]*)} $variants]
|
||||
foreach { match sign variant } $l {
|
||||
lappend result $variant $sign
|
||||
}
|
||||
return $result
|
||||
}
|
||||
|
||||
package require macports
|
||||
|
||||
if {[llength $::argv] == 0} {
|
||||
@@ -47,6 +56,11 @@ if {[catch {mportinit "" "" ""} result]} {
|
||||
|
||||
# look up the path of the Portfile for the given port
|
||||
set portname [lindex $::argv 0]
|
||||
if {[llength $::argv] > 1} {
|
||||
set variations [split_variants [lindex $::argv 1]]
|
||||
} else {
|
||||
set variations ""
|
||||
}
|
||||
#try -pass_signal {...}
|
||||
try {
|
||||
set result [mportlookup $portname]
|
||||
@@ -63,7 +77,7 @@ try {
|
||||
array set portinfo [lindex $result 1]
|
||||
#try -pass_signal {...}
|
||||
try {
|
||||
set mport [mportopen $portinfo(porturl) [list subport $portname] {}]
|
||||
set mport [mportopen $portinfo(porturl) [list subport $portname] $variations]
|
||||
} catch {{*} eCode eMessage} {
|
||||
ui_error "mportopen ${portinfo(porturl)} failed: $eMessage"
|
||||
exit 1
|
||||
|
||||
@@ -30,6 +30,15 @@
|
||||
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
proc split_variants {variants} {
|
||||
set result {}
|
||||
set l [regexp -all -inline -- {([-+])([[:alpha:]_]+[\w\.]*)} $variants]
|
||||
foreach { match sign variant } $l {
|
||||
lappend result $variant $sign
|
||||
}
|
||||
return $result
|
||||
}
|
||||
|
||||
if {[llength $::argv] == 0} {
|
||||
puts stderr "Usage: $argv0 <portname>"
|
||||
exit 1
|
||||
@@ -44,6 +53,11 @@ if {[catch {mportinit "" "" ""} result]} {
|
||||
}
|
||||
|
||||
set portname [lindex $::argv 0]
|
||||
if {[llength $::argv] > 1} {
|
||||
set variations [split_variants [lindex $::argv 1]]
|
||||
} else {
|
||||
set variations ""
|
||||
}
|
||||
|
||||
if {[catch {set one_result [mportlookup $portname]}] || [llength $one_result] < 2} {
|
||||
ui_error "No port named ${portname} could be found in the port index"
|
||||
@@ -54,7 +68,7 @@ array set portinfo [lindex $one_result 1]
|
||||
set portname $portinfo(name)
|
||||
|
||||
if {[info exists portinfo(porturl)]} {
|
||||
if {[catch {set mport [mportopen $portinfo(porturl) [list subport $portname] {}]}]} {
|
||||
if {[catch {set mport [mportopen $portinfo(porturl) [list subport $portname] $variations]}]} {
|
||||
ui_warn "failed to open port: $portname"
|
||||
} else {
|
||||
set archs [_mportkey $mport supported_archs]
|
||||
|
||||
Reference in New Issue
Block a user