# -*- 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 5.2.3 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  245f3021cf78c87974c79c1e228e16a5021f48c0 \
                 sha256  e48513adebf514bd2f62c0dd3b47ddf83f64b5ca1864bf501afa892b4e29d13d \
                 size    35948348
} elseif {${configure.build_arch} eq "arm64"} {
    set micronaut_arch aarch64
    checksums    rmd160  853bfc1ede6afe8c64dc129d6782d34d9d84984b \
                 sha256  a3be06b3d47f4bdc564ea8ad1b8afe2de69aa93fe7f9c9abdcf2defe78b45a90 \
                 size    39662589
} 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
}
