# -*- 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.0.2 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  c9ab8d59c0854c2349a34ae141d9a08cd6fffdd4 \
                 sha256  c9fce15598a2f38afa62f632e92d370d25fed6f22b4f9a64334208b9bfeb36fb \
                 size    33773853
} elseif {${configure.build_arch} eq "arm64"} {
    set micronaut_arch aarch64
    checksums    rmd160  0c4992fac04ed896f1ba3b6cc702f76a26b5328e \
                 sha256  e5b85f3787526145d6a0ef9e58cb3b775288c68678accbd2159d77b207978e11 \
                 size    38528422
} 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
}
