<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch variant-support
in repository mpbb.

</pre>
<p><a href="https://github.com/macports/mpbb/commit/06620d15ab6fff50428bd801c578483386bcc2ef">https://github.com/macports/mpbb/commit/06620d15ab6fff50428bd801c578483386bcc2ef</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 06620d15ab6fff50428bd801c578483386bcc2ef
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Sun Mar 11 16:43:20 2018 +0100

<span style='display:block; white-space:pre;color:#404040;'>    Support specifying variants in list-subports
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Allow passing variants into list-subports by separating port name and
</span><span style='display:block; white-space:pre;color:#404040;'>    variants specification with an "@" sign. @ is not a valid character in
</span><span style='display:block; white-space:pre;color:#404040;'>    port names and should allow us to specify variants per port in the
</span><span style='display:block; white-space:pre;color:#404040;'>    buildbot's portlist.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    When not using this new syntax, the output will look exactly as it did
</span><span style='display:block; white-space:pre;color:#404040;'>    before to avoid breaking the existing setup.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/52742
</span>---
 mpbb-list-subports | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mpbb-list-subports b/mpbb-list-subports
</span><span style='display:block; white-space:pre;color:#808080;'>index 724d6aa..fe2ca26 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mpbb-list-subports
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mpbb-list-subports
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,7 +9,7 @@ list-subports-usage() {
</span>     # "prog" is defined in mpbb-help.
     # shellcheck disable=SC2154
     cat <<EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>-usage: $prog [<global opts>] list-subports [<opts>] <port> [<port2> [...]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+usage: $prog [<global opts>] list-subports [<opts>] <port>[@(+|-)variant [...]] [<port2>[@(+|-)variant [...]] [...]]
</span> 
 Print the name and subports of each given port to standard output.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,7 +25,8 @@ EOF
</span> 
 print-subports() {
     local archive_site=$1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    local portname=$2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    local portname=${2%%@*}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    local portvariants=${2:${#portname}+1}
</span>     local port
     local portgroup
     local ports
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,16 +45,15 @@ print-subports() {
</span>         exclude=0
         exclude_reasons=()
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # FIXME: this doesn't take selected variants into account
</span>         # $thisdir is set in mpbb
         # shellcheck disable=SC2154
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        archive_path=$("${tclsh}" "${thisdir}/tools/archive-path.tcl" "${port}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        archive_path=$("${tclsh}" "${thisdir}/tools/archive-path.tcl" "${port}" "${portvariants}")
</span>         if [[ -f "${archive_path}" ]]; then
             archive_basename=$(basename "${archive_path}")
             if curl -fIsL "${archive_site}/${port}/${archive_basename}" > /dev/null; then
                 exclude=1
                 exclude_reasons+=("it has already been built and uploaded")
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            elif ! "${tclsh}" "${option_jobs_dir}/port_binary_distributable.tcl" "${port}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            elif ! "${tclsh}" "${option_jobs_dir}/port_binary_distributable.tcl" "${port}" "${portvariants}"; then
</span>                 exclude=1
                 exclude_reasons+=("it has already been built and is not distributable")
             fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,7 +66,7 @@ print-subports() {
</span>             else
                 # $thisdir is set in mpbb
                 # shellcheck disable=SC2154
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                for portgroup in $("${tclsh}" "${thisdir}/tools/portgroups.tcl" "$port"); do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                for portgroup in $("${tclsh}" "${thisdir}/tools/portgroups.tcl" "${port}" "${portvariants}"); do
</span>                     if [ "$portgroup" = "obsolete-1.0" ]; then
                         exclude=1
                         exclude_reasons+=("it includes the obsolete 1.0 PortGroup")
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,7 +76,7 @@ print-subports() {
</span>         fi
 
         if [[ $exclude -eq 0 && ("${os_version}" = "10.6" || "${os_version}" = "10.5") ]]; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            supported_archs=$("${tclsh}" "${thisdir}/tools/supported-archs.tcl" "${port}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            supported_archs=$("${tclsh}" "${thisdir}/tools/supported-archs.tcl" "${port}" "${portvariants}")
</span>             if [[ -n "${supported_archs}" ]]; then
                 is_64bit_capable="$(sysctl -n hw.cpu64bit_capable)"
                 if [[ "${os_version}" = "10.6" && "${is_64bit_capable}" = "0" && ! ("${supported_archs}" == *"x86_64"* && "${supported_archs}" == *"i386"*) ]]; then
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -90,7 +90,11 @@ print-subports() {
</span>         fi
 
         if [ $exclude -eq 0 ]; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            echo "$port"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if [ -n "${portvariants}" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                echo "${port}@${portvariants}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                echo "$port"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fi
</span>         else
             if [ ${#exclude_reasons[@]} -eq 1 ]; then
                 echo >&2 "Excluding '${port}' because ${exclude_reasons[0]}."
</pre><pre style='margin:0'>

</pre>