# -*- 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            spring-boot-cli
version         3.5.5
revision        0

categories      java
platforms       {darwin any}
maintainers     {breun.nl:nils @breun} openmaintainer
license         Apache-2
supported_archs noarch

description     Spring Boot CLI -- An opinionated view of building \
                production-ready Spring applications.

long_description The Spring Boot CLI is a command line tool that can be used \
                if you want to quickly prototype with Spring. It allows you to \
                run Groovy scripts, which means that you have a familiar \
                Java-like syntax, without much boilerplate code. \
                \
                You don't need to use the CLI to work with Spring Boot but \
                it's definitely the quickest way to get a Spring application \
                off the ground.

homepage        https://projects.spring.io/spring-boot/
master_sites    https://repo.maven.apache.org/maven2/org/springframework/boot/${name}/${version}/

distname        ${name}-${version}-bin

checksums       rmd160  0d267724df54ccff23668544a62f13b43e665555 \
                sha256  144e9f72a1e14cb1de30487c7d76abbe2053b65995867e86985b87c33708ebc3 \
                size    7156965

worksrcdir      spring-${version}

use_configure   no

# See https://docs.spring.io/spring-boot/system-requirements.html
# Oldest supported Long Term Support version
java.version    17+
# Latest supported Long Term Support version
java.fallback   openjdk21

build {}

test.run    yes
test.cmd    bin/spring
test.target
test.args   --version

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 lib } {
        copy ${worksrcpath}/${d} ${target}
    }

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

    # Add symlink to the script
    ln -s ../share/java/${name}/bin/spring ${destroot}${prefix}/bin

    # Bash shell completion
    xinstall -d ${destroot}${prefix}/etc/bash_completion.d
    copy ${worksrcpath}/shell-completion/bash/spring ${destroot}${prefix}/etc/bash_completion.d/spring

    # Zsh shell completion
    xinstall -d ${destroot}${prefix}/share/zsh/site-functions
    copy ${worksrcpath}/shell-completion/zsh/_spring ${destroot}${prefix}/share/zsh/site-functions/_spring
}
