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

github.setup    micronaut-projects micronaut-starter 4.10.1 v
revision        0
name            micronaut
categories      java
platforms       {darwin any}
maintainers     {breun @breun} openmaintainer
license         Apache-2
supported_archs x86_64 arm64
universal_variant no

description     Micronaut is a modern, JVM-based, full-stack framework \
                for building modular, easily testable microservice and \
                serverless applications.

long_description Micronaut is a modern, JVM-based, full stack Java framework \
                designed for building modular, easily testable JVM \
                applications with support for Java, Kotlin and the Groovy \
                language. \
                \n\
                \nMicronaut is developed by the creators of the Grails \
                framework and takes inspiration from lessons learnt over the \
                years building real-world applications from monoliths to \
                microservices using Spring, Spring Boot and Grails. \
                \n\
                \nMicronaut aims to provide all the tools necessary to build \
                microservice applications including: \
                \n\
                \n* Dependency Injection and Inversion of Control (IoC) \
                \n* Aspect Oriented Programming (AOP) \
                \n* Sensible Defaults and Auto-Configuration \
                \n\
                \nWith Micronaut you can build Message-Driven Applications, \
                Command Line Applications, HTTP Servers and more whilst for \
                Microservices in particular Micronaut also provides: \
                \n* Distributed Configuration \
                \n* Service Discovery \
                \n* HTTP Routing \
                \n* Client-Side Load Balancing \
                \n\
                \nAt the same time Micronaut aims to avoid the downsides of \
                frameworks like Spring, Spring Boot and Grails by providing: \
                \n\
                \n* Fast startup time \
                \n* Reduced memory footprint \
                \n* Minimal use of reflection \
                \n* Minimal use of proxies \
                \n* No runtime bytecode generation \
                \n* Easy Unit Testing

homepage        https://micronaut.io
github.tarball_from releases

if {${configure.build_arch} eq "x86_64"} {
    set micronaut_arch amd64
    checksums    rmd160  9be52958b9b8478d1fe2392dba576869d5ae47fa \
                 sha256  15371d3d3a1489ca97e5830bc4966888f50a1bd3412d087a51dbed522cc4f55a \
                 size    29862000
} elseif {${configure.build_arch} eq "arm64"} {
    set micronaut_arch aarch64
    checksums    rmd160  ffd63cf5099f5cb39a50d78ac1b652e591adb981 \
                 sha256  f3a7a582d3df09e595c3a42c0cba3c22c8bf88c18978c8a8b5ddd2e53e761ca8 \
                 size    29633785
} else {
    set micronaut_arch unsupported_arch
}

distname     mn-darwin-${micronaut_arch}-v${version}

use_zip         yes
use_configure   no

build {}

test.run    yes
test.cmd    bin/mn
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 { LICENSE bin } {
        copy ${worksrcpath}/${d} ${target}
    }

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