<pre style='margin:0'>
Eric A. Borisch (eborisch) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/b39884f7e90d028d4c3e57b66810bb7513d1d1e6">https://github.com/macports/macports-ports/commit/b39884f7e90d028d4c3e57b66810bb7513d1d1e6</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 b39884f  gitlab: New portgroup (#6622)
</span>b39884f is described below

<span style='display:block; white-space:pre;color:#808000;'>commit b39884f7e90d028d4c3e57b66810bb7513d1d1e6
</span>Author: Eric A. Borisch <eborisch@macports.org>
AuthorDate: Thu Mar 19 12:42:56 2020 -0500

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

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/gitlab-1.0.tcl b/_resources/port1.0/group/gitlab-1.0.tcl
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..255db4d
</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/gitlab-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,96 @@
</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 projects hosted with gitlab, either at gitlab.com
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# or on individual instances (via gitlab.instance)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Documentation: <NOT THERE YET>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://guide.macports.org/#reference.portgroup.gitlab
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Documentation (sources): <NOT THERE YET>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.com/macports/macports-guide/blob/master/guide/xml/portgroup-gitlab.xml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options gitlab.author gitlab.project gitlab.version gitlab.tag_prefix gitlab.tag_suffix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options gitlab.instance
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default gitlab.instance {https://gitlab.com}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options gitlab.homepage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default gitlab.homepage {${gitlab.instance}/${gitlab.author}/${gitlab.project}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Later code assumes that gitlab.master_sites is a simple string, not a list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options gitlab.master_sites
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default gitlab.master_sites {${gitlab.homepage}/-/archive/${git.branch}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options gitlab.livecheck.branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default gitlab.livecheck.branch master
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options gitlab.livecheck.regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default gitlab.livecheck.regex {(\[0-9]\[^<]+)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc gitlab.setup {gl_author gl_project gl_version {gl_tag_prefix ""} {gl_tag_suffix ""}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global extract.suffix gitlab.author gitlab.project gitlab.version gitlab.tag_prefix gitlab.tag_suffix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global gitlab.homepage gitlab.master_sites gitlab.livecheck.branch PortInfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gitlab.author           ${gl_author}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gitlab.project          ${gl_project}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gitlab.version          ${gl_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gitlab.tag_prefix       ${gl_tag_prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    gitlab.tag_suffix       ${gl_tag_suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {!([info exists PortInfo(name)] && (${PortInfo(name)} ne ${gitlab.project}))} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        name                ${gitlab.project}
</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;'>+    version                 ${gitlab.version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default homepage        ${gitlab.homepage}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    git.url                 ${gitlab.homepage}.git
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    git.branch              [join ${gitlab.tag_prefix}]${gitlab.version}[join ${gitlab.tag_suffix}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default master_sites    {${gitlab.master_sites}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    distname                ${gitlab.project}-${gitlab.version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    use_bzip2               yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# I don't _think_ we need this bit from the github portgroup, but keeping
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# around until we have more use cases...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#    post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        # When fetching from a tag, the extracted directory name will contain a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        # truncated commit hash. So that the port author need not specify what
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        # that hash is every time the version number changes, rename the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        # directory to the value of distname (not worksrcdir: ports may want to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        # set worksrcdir to a subdirectory of the extracted directory).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        # It is assumed that gitlab.master_sites is a simple string, not a list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        # Here be dragons.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        if {![file exists ${worksrcpath}] && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                ${fetch.type} eq "standard" && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                ${gitlab.master_sites} in ${master_sites} && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                [llength ${distfiles}] > 0 && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                [llength [glob -nocomplain ${workpath}/*]] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#            if {[file exists [glob -nocomplain ${workpath}/${gitlab.author}-${gitlab.project}-*]] && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                [file isdirectory [glob -nocomplain ${workpath}/${gitlab.author}-${gitlab.project}-*]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                move [glob ${workpath}/${gitlab.author}-${gitlab.project}-*] ${workpath}/${distname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                # tarball is not "${gitlab.author}-${gitlab.project}-*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                ui_error "\n\ngitlab PortGroup: Error: \${worksrcpath} does not exist after extracting distfiles. This might indicate that the author or project is different than set in the Portfile due to a rename at GitHub. Please examine the extracted directory in ${workpath} and try to correct the Portfile by either changing the author or project or adding the worksrcdir option with the correct directory name.\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                return -code error "Unexpected gitlab tarball extract."
</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;'>+    # If the version is composed entirely of hex characters, and is at least 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # characters long, and is not exactly 8 decimal digits (which might be a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # version in YYYYMMDD format), and no tag prefix or suffix is provided, then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # assume we are using a commit hash and livecheck commits; otherwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # livecheck tags.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[join ${gitlab.tag_prefix}] eq "" && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [join ${gitlab.tag_suffix}] eq "" && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [regexp "^\[0-9a-f\]{7,}\$" ${gitlab.version}] && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ![regexp "^\[0-9\]{8}\$" ${gitlab.version}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        livecheck.type      regexm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default livecheck.url   {${gitlab.homepage}/-/commits/${gitlab.livecheck.branch}?format=atom}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        livecheck.regex     commit/(\[0-9a-f\]{[string length ${gitlab.version}]})\[0-9a-f\]*</id>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        livecheck.url       ${gitlab.homepage}/-/tags?format=atom
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default livecheck.regex {[list tags/[join ${gitlab.tag_prefix}][join ${gitlab.livecheck.regex}][join ${gitlab.tag_suffix}]</id>]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.version       ${gitlab.version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>