<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>