# -*- 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.1
revision        0

categories      lang java
maintainers     {breun.nl:nils @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  0c9b5353bcc9c80895920004fcf18dd10a5aca5e \
                sha256  be66a17f34f69f473b23958ebee0770e88aaf735d79ba962454375c38d2854a5 \
                size    34493257

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}
