<pre style='margin:0'>
Mojca Miklavec (mojca) pushed a commit to branch master
in repository macports-contrib.

</pre>
<p><a href="https://github.com/macports/macports-contrib/commit/cef63c3228c059619d871c90278d1825a0abf1e3">https://github.com/macports/macports-contrib/commit/cef63c3228c059619d871c90278d1825a0abf1e3</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 cef63c3  Improve output for maintainers, depends_* and variants
</span>cef63c3 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit cef63c3228c059619d871c90278d1825a0abf1e3
</span>Author: arjunsalyan <arjunsalyan@icloud.com>
AuthorDate: Thu Mar 21 21:25:57 2019 +0530

<span style='display:block; white-space:pre;color:#404040;'>    Improve output for maintainers, depends_* and variants
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Add another key 'closedmaintainer' and keep details of maintainers in
</span><span style='display:block; white-space:pre;color:#404040;'>    the 'maintainers' key.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Output 'depends_*' and 'variants' as a list of strings.
</span>---
 portindex2json/portindex2json.tcl | 61 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 59 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/portindex2json/portindex2json.tcl b/portindex2json/portindex2json.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 92e5412..7557264 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/portindex2json/portindex2json.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/portindex2json/portindex2json.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,6 +12,58 @@
</span> 
 package require json::write
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc tcl2json_list {tcl_list} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set new_tcl_list {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach element $tcl_list {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend new_tcl_list [::json::write string $element]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [::json::write array {*}$new_tcl_list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc get_maintainer_array {maintainer} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach entry $maintainer {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[string first @ $entry] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set maintainer_array(github) [::json::write string [string trimleft $entry @]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[string first : $entry] != -1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set email_list [split $entry :]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set email(name) [::json::write string [lindex $email_list 1]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set email(domain) [::json::write string [lindex $email_list 0]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set email(name) [::json::write string $entry]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set email(domain) [::json::write string "macports.org"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set email_subobject [::json::write object {*}[array get email]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set maintainer_array(email) $email_subobject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [array get maintainer_array]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc parse_maintainers {maintainers} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set maintainer_subobjects {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach maintainer $maintainers {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$maintainer != "openmaintainer" && $maintainer != "nomaintainer"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend maintainer_subobjects [::json::write object {*}[get_maintainer_array $maintainer]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set maintainers_list [::json::write array {*}$maintainer_subobjects]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return $maintainers_list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc is_closedmaintainer {maintainers} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach maintainer $maintainers {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$maintainer == "openmaintainer" || $maintainer == "nomaintainer"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc remove_extra_braces {text} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [regsub -all {[\{\}]} $text ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> set fd [open [lindex $argv 0] r]
 chan configure $fd -encoding utf-8
 while {[gets $fd line] >= 0} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,8 +76,13 @@ while {[gets $fd line] >= 0} {
</span>     array set portinfo $line
     array unset json_portinfo
     foreach key [array names portinfo] {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if { $key == "categories"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set json_portinfo($key) [::json::write array {*}$portinfo($key)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$key == "categories" || $key == "variants" || [string match "depends_*" $key]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set json_portinfo($key) [tcl2json_list $portinfo($key)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {$key == "maintainers"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set json_portinfo($key) [parse_maintainers $portinfo($key)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set json_portinfo(closedmaintainer) [is_closedmaintainer $portinfo($key)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {$key == "long_description"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set json_portinfo($key) [::json::write string [remove_extra_braces $portinfo($key)]]
</span>         } else {
             set json_portinfo($key) [::json::write string $portinfo($key)]
         }
</pre><pre style='margin:0'>

</pre>