<pre style='margin:0'>
Zero King (l2dy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/cceb8d52f1470c3c0813024692d1e5ef2571cb58">https://github.com/macports/macports-ports/commit/cceb8d52f1470c3c0813024692d1e5ef2571cb58</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit cceb8d52f1470c3c0813024692d1e5ef2571cb58
</span>Author: Zero King <l2dy@macports.org>
AuthorDate: Fri May 28 13:31:49 2021 +0000

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

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/luarocks-1.0.tcl b/_resources/port1.0/group/luarocks-1.0.tcl
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..66389c09697
</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/luarocks-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,368 @@
</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;'>+# Usage:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   1. use luarocks.setup and luarocks.branches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     PortGroup            luarocks 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     luarocks.branches    5.1 5.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     luarocks.setup       module version type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     # - adds subport "lua51-module" and "lua52-module"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   2. use luarocks.branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     PortGroup            luarocks 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     luarocks.branch      3.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     depends_lib          port:luarocks${luarocks.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     build.cmd            ${luarocks.bin}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# options:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.branches: the luarocks versions supported by this module.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        this introduces subports such as lua51-, lua52-, ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.branch: select luarocks version. 5.1, ... 5.2 or 5.3.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.link_binaries: whether to generate suffixed symlink under ${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        or not.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.link_binaries_suffix: suffix of commands from lua-foo under
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        ${prefix}/bin. such as "-5.1" or "-5.2".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# values:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.bin: fullpath to commands for ${luarocks.branch}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.suffix: suffix of portname. port:luarocks${luarocks.suffix} or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#        port:lua${luarocks.suffix}-foo.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.bindir: install location of commands without suffix from lua-foo.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# values from luarocks.setup:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.module: port name without prefix. lua-${luarocks.module}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   luarocks.project: project name at luarocks.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options luarocks.default_branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default luarocks.default_branch {[luarocks_get_default_version]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options luarocks.branch luarocks.branches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default luarocks.branches {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options luarocks.dependencies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default luarocks.dependencies {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options luarocks.bin luarocks.bindir luarocks.rocksdir luarocks.suffix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc luarocks_get_default_version {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global luarocks.branches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set def_v 5.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[info exists luarocks.branches]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${def_v} in ${luarocks.branches}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return ${def_v}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return [lindex ${luarocks.branches} end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return ${def_v}
</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;'>+option_proc luarocks.branch luarocks_set_branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc luarocks_set_branch {option action args} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$action ne "set"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set luarocks.latest_branch 5.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global prefix luarocks.branch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           luarocks.bin luarocks.bindir luarocks.rocksdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           luarocks.suffix luarocks.branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set luarocks.bin            ${prefix}/bin/luarocks-${luarocks.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set luarocks.bindir         ${prefix}/libexec/lua${luarocks.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set luarocks.rocksdir       ${prefix}/lib/luarocks/rocks-${luarocks.branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set luarocks.suffix         [join [split ${luarocks.branch} .] {}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${luarocks.branch} eq ${luarocks.latest_branch}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set luarocks.suffix     ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   if {${luarocks.branch} eq ${luarocks.latest_branch}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#       set luarocks.branch     ""
</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;'>+set luarocks.module     ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set luarocks.filename   ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set luarocks.distname   ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set luarocks.project    ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set luarocks.docs       {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set luarocks.branch     ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+luarocks.branch         ${luarocks.default_branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options luarocks.link_binaries luarocks.link_binaries_suffix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default luarocks.link_binaries yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default luarocks.link_binaries_suffix {-${luarocks.branch}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# luarocks group setup procedure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc luarocks.setup {module vers {type "src.rock"} {docs {}} {source "custom"} {implementation "luarocks"}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global name subport luarocks.branches luarocks.default_branch luarocks.dependencies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global destroot prefix distpath distname worksrcpath os.platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global configure.cc configure.cflags configure.ldflags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global luarocks.bin luarocks.branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global luarocks.suffix luarocks.bindir luarocks.rocksdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global luarocks.module luarocks.filename luarocks.distname luarocks.project luarocks.docs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version         ${vers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    categories      lua
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # define luarocks global names and lists
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # check if module is a list or string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength ${module}] > 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # if a list, first item is the module name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set luarocks.module     [lindex ${module} 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # second argument is the project & file name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set luarocks.project    [lindex ${module} 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set luarocks.filename   [lindex ${module} 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # else, module, project, and file name are the same
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set luarocks.module     ${module}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set luarocks.project    ${module}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set luarocks.filename   ${module}
</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 {${luarocks.branches} ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # add subports luaXX-module from ${luarocks.branches}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![info exists name]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            name lua-[string tolower ${luarocks.module}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[string match lua-* $name]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # stub port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set rootname [string range $name 4 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach v ${luarocks.branches} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set suffix [join [split ${v} .] {}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                subport lua${suffix}-${rootname} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    luarocks.branch ${v}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    depends_lib port:lua${luarocks.suffix}
</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 {$subport eq $name} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                luarocks.link_binaries no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                depends_lib port:lua[join [split ${luarocks.default_branch} .] {}][string trimleft $name lua]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    system "echo $name is a stub port > ${destroot}${prefix}/share/doc/${name}/README"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return
</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;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        switch ${implementation} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lua52 { luarocks.branch 5.2 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lua { luarocks.branch 5.3 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "luarocks.setup: unknown implementation '${implementation}' specified"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error "luarocks.setup failed"
</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;'>+        name            lua${luarocks.suffix}-[string tolower ${luarocks.module}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib     port:${implementation}
</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 luarocks.docs   ${docs}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # set source to luarocks by default for type "rock"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[string match *.rock $type] && (${source} eq "custom")} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set source luarocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    switch -glob ${source} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        luarocks {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            master_sites    https://luarocks.org/
</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;'>+    set suffix [join [split ${luarocks.branch} .] {}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach v ${luarocks.dependencies} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append port:lua${suffix}-[string tolower ${v}]
</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 luarocks.distname   ${luarocks.filename}-${vers}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dist_subdir             luarocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    destroot.env-append     CC="${configure.cc}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    destroot.env-append     "CFLAGS=${configure.cflags} [get_canonical_archflags cc]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    destroot.env-append     "LDFLAGS=${configure.ldflags} [get_canonical_archflags ld]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/luarocks/luarocks/wiki/Types-of-rocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    switch -glob ${type} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        rockspec {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            proc luarocks.add_distfiles {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                global version luarocks.filename
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                master_sites-append https://luarocks.org/:luarocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                distfiles-append    ${luarocks.filename}-${version}.rockspec:luarocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port::register_callback luarocks.add_distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_build-append    port:lua${suffix}-luarocks
</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;'>+                copy -force ${distpath}/${luarocks.distname}.rockspec ${worksrcpath}/${luarocks.distname}.rockspec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.cmd       ${luarocks.bin}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.pre_args  --tree ${destroot}${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.args      make --deps-mode none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.post_args ${distpath}/${luarocks.distname}.rockspec
</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;'>+                command_exec destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set binDir ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[file isdirectory $binDir]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    foreach file [readdir $binDir] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        move [file join $binDir $file] ${destroot}${luarocks.bindir}
</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;'>+        src.rock {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set distname    ${luarocks.distname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extract.suffix .src.rock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_build-append    port:lua${suffix}-luarocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extract.mkdir       yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                copy ${distpath}/${luarocks.distname}.src.rock ${worksrcpath}/${luarocks.distname}.src.rock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.cmd       ${luarocks.bin}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.pre_args  --tree ${destroot}${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.args      build --deps-mode none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.post_args ${worksrcpath}/${luarocks.distname}.src.rock
</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;'>+                command_exec destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set binDir ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[file isdirectory $binDir]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    foreach file [readdir $binDir] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        move [file join $binDir $file] ${destroot}${luarocks.bindir}
</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;'>+        all.rock {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set distname    ${luarocks.distname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extract.suffix .all.rock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_build-append    port:lua${suffix}-luarocks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extract.mkdir       yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                copy ${distpath}/${luarocks.distname}.all.rock ${worksrcpath}/${luarocks.distname}.all.rock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.cmd       ${luarocks.bin}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.pre_args  --tree ${destroot}${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.args      build --deps-mode none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            destroot.post_args ${worksrcpath}/${luarocks.distname}.all.rock
</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;'>+                command_exec destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set binDir ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[file isdirectory $binDir]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    foreach file [readdir $binDir] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        move [file join $binDir $file] ${destroot}${luarocks.bindir}
</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;'>+        fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # do nothing but fetch and extract - for strange installers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error "luarocks.setup: unknown setup type '${type}' specified!"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return -code error "luarocks.setup failed"
</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;'>+    pre-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d -m 0755 ${destroot}${luarocks.bindir}
</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;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Delete conflicting files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        delete ${destroot}${luarocks.rocksdir}/manifest
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${luarocks.link_binaries}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach bin [glob -nocomplain -tails -directory "${destroot}${luarocks.bindir}" *] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[catch {file type "${destroot}${prefix}/bin/${bin}${luarocks.link_binaries_suffix}"}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ln -s "${luarocks.bindir}/${bin}" "${destroot}${prefix}/bin/${bin}${luarocks.link_binaries_suffix}"
</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;'>+        # Install documentation files (if specified)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[llength ${luarocks.docs}] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set docPath ${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -d -m 0755 ${destroot}${docPath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach docitem ${luarocks.docs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set docitem [file join ${worksrcpath} ${docitem}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[file isdirectory ${docitem}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set subdir [file tail $docitem]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    xinstall -d -m 0755 ${destroot}${docPath}/${subdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    fs-traverse file $docitem {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set file [trimroot $docitem $file]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if {$file ne ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            set filepath [file join $docitem $file]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            if {[file isdirectory $filepath]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                xinstall -d -m 0755 ${destroot}${docPath}/${subdir}/${file}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                xinstall -m 0644 $filepath ${destroot}${docPath}/${subdir}/${file}
</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;'>+                } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    xinstall -m 0644 ${docitem} ${destroot}${docPath}
</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;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc trimroot {root path} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set acc {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set skiproot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach rootf [file split $root] pathf [file split $path] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {$pathf eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # we've hit the end of the path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {$skiproot eq "yes" || $rootf eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend acc $pathf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {$rootf ne $pathf} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # diverged from the root
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend acc $pathf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set skiproot yes
</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 {[llength $acc] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return [file join {*}$acc]
</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;'>+# Do not extract .rockspec files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default extract.only    {[luarocks._disttagclean $distfiles]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# based on portextract::disttagclean from portextract.tcl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc luarocks._disttagclean {list} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {$list eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return $list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach fname $list {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set name [getdistname ${fname}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![string match *.rockspec $name]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend val ${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;'>+    return $val
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>