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

PortSystem      1.0
PortGroup       java 1.0

name            groovy
version         5.0.2
revision        0

categories      lang java
maintainers     {breun @breun} openmaintainer
platforms       {darwin any}
license         Apache-2
supported_archs noarch

description     Groovy -- a Java-based scripting language

long_description Apache Groovy is a powerful, optionally typed and dynamic \
                 language, with static-typing and static compilation \
                 capabilities, for the Java platform aimed at improving \
                 developer productivity thanks to a concise, familiar and easy \
                 to learn syntax. It integrates smoothly with any Java \
                 program, and immediately delivers to your application \
                 powerful features, including scripting capabilities, \
                 Domain-Specific Language authoring, runtime and compile-time \
                 meta-programming and functional programming.

homepage        https://groovy.apache.org
master_sites    https://groovy.jfrog.io/artifactory/dist-release-local/groovy-zips/
distname        apache-${name}-binary-${version}
use_zip         yes

checksums       rmd160  e2f1ee523fd2ed37ba175141823bee1c6d28f1dd \
                sha256  70f82f11b1b764e207dcf5568882c78dc77293f307816242394a3f7a74f20e81 \
                size    34506332

worksrcdir      ${name}-${version}

use_configure   no

java.version    11+
java.fallback   openjdk21

build {}

destroot {
    set target ${destroot}${prefix}/share/java/${name}

    # Create the target java directory
    xinstall -m 755 -d ${target}

    # Copy over the needed elements of our directory tree
    foreach d { bin conf grooid lib } {
        copy ${worksrcpath}/${d} ${target}
    }

    # Remove extraneous bat files
    foreach f [glob -directory ${target}/bin *.bat] {
        delete ${f}
    }

    # Add symlinks to the scripts
    foreach f { grape grape_completion groovy groovy_completion groovyc groovyc_completion groovyConsole groovyConsole_completion groovydoc groovydoc_completion groovysh groovysh_completion java2groovy startGroovy } {
        ln -s ../share/java/${name}/bin/${f} ${destroot}${prefix}/bin
    }
}

livecheck.regex ${name}-binary-(\[\\d\.\]+)${extract.suffix}
