<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/fd512e8841a05bdc109907fcbedfc90cbc82797a">https://github.com/macports/macports-ports/commit/fd512e8841a05bdc109907fcbedfc90cbc82797a</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit fd512e8841a05bdc109907fcbedfc90cbc82797a
</span>Author: Aaron Madlon-Kay <amake@macports.org>
AuthorDate: Mon Sep 10 13:01:50 2018 +0900

<span style='display:block; white-space:pre;color:#404040;'>    golang-1.0.tcl: new portgroup
</span>---
 _resources/port1.0/group/golang-1.0.tcl | 126 ++++++++++++++++++++++++++++++++
 1 file changed, 126 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/golang-1.0.tcl b/_resources/port1.0/group/golang-1.0.tcl
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..3b6f804
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/golang-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,126 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# This PortGroup accommodates golang projects hosted at GitHub.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Usage:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# PortGroup     golang 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# github.setup  author project 1.0.0 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# go.vendors    github.com/dep1/foo abcdef123456... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#               github.com/dep2/bar fedcba654321...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#               dep1-foo-${foo.version}.tar.gz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                   rmd160 abcdef123456... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                   sha256 fedcba654321... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                   size   1234 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#               dep2-bar-${bar.version}.tar.gz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                   rmd160 abcdef123456... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                   sha256 fedcba654321... \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                   size   4321
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The go.vendors option expects a list with 2-tuples consisting of package ID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# and git SHA1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The list of vendors can be found in the Gopkg.lock, glide.lock, etc. file in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the upstream source code. The go2port tool (install via MacPorts) can be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# to generate a skeleton portfile with precomputed go.vendors and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# checksums-append values.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup               github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options go.bin go.vendors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default go.bin          {${prefix}/bin/go}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default go.vendors      {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default platforms       darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default use_configure   no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default dist_subdir     go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default depends_build   port:go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set gopath              ${workpath}/gopath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default worksrcdir      {${gopath}/src/github.com/${github.author}/${github.project}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default build.cmd       {"${go.bin} build"}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default build.env       {"GOPATH=${gopath} CC=${configure.cc}"}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# go.vendors name1 ver1 name2 ver2...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# When a Gopkg.lock, glide.lock, etc. is present use go2port to generate values
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set go.vendors._internal {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+option_proc go.vendors handle_go_vendors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc handle_go_vendors {option action {value ""}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global go.vendors._internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${action} eq "set"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach {imp_name vers} ${value} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set vlist [split ${imp_name} /]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set vdomain [lindex ${vlist} 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set vuser [lindex ${vlist} 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set vname [lindex ${vlist} 2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            switch -exact ${vdomain} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                github.com { set ghuser ${vuser} }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                golang.org { set ghuser golang }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                gopkg.in {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {$vname eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set vname [regsub -- \\..*$ ${vuser} ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set ghuser go-${vname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set vname [regsub -- \\..*$ ${vname} ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set ghuser ${vuser}
</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;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Need to use the 7-character SHA-1 suffix later to identify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # the package when moving into the GOPATH, because the vuser
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # here may be wrong (renamed on GitHub, etc.).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set sha1_short [string range ${vers} 0 6]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend go.vendors._internal [list ${sha1_short} ${imp_name} ${vers}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            global ${vname}.version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set ${vname}.version ${vers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set fname ${ghuser}-${vname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            master_sites-append https://github.com/${ghuser}/${vname}/tarball/${vers}:${fname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            distfiles-append    ${fname}-${vers}.tar.gz:${fname}
</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;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Setup build sources in GOPATH style:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   workpath/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#       gopath/src/github.com/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#           author1/project1/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#           author2/project2/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#             :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    file mkdir ${gopath}/src/github.com/${github.author}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    move [glob ${workpath}/${github.author}-${github.project}-*] ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach vlist ${go.vendors._internal} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set sha1_short [lindex ${vlist} 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set imp_name [lindex ${vlist} 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file mkdir ${gopath}/src/[file dirname ${imp_name}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        move [glob ${workpath}/*-${sha1_short}] ${gopath}/src/${imp_name}
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_error "No destroot phase in the Portfile!"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_msg "Here is an example destroot phase:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_msg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_msg "destroot {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_msg {    xinstall -m 755 ${worksrcpath}/${name} ${destroot}${prefix}/bin/}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_msg "}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_msg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_msg "Please check if there are additional files (configuration, documentation, etc.) that need to be installed."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    error "destroot phase not implemented"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>