# -*- 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.9.4 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  c6b2953f99d725c6b9c55e624377496e7c8e7cc9 \
                 sha256  622bbfc3b860c1a5b542e8e6d7efcb99e97de5d8b2922119d7502ef4bbecedce \
                 size    29649335
} elseif {${configure.build_arch} eq "arm64"} {
    set micronaut_arch aarch64
    checksums    rmd160  f99a6df9764cee11bb4a924d7bb2100c5926872b \
                 sha256  e6720b95ddb42cffc11808236bf2c10af57e21c7a0ad28e3156a09d1a36defb5 \
                 size    29424966
} 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
}
