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

go.setup            github.com/lima-vm/lima 1.2.1 v
go.offline_build    no
revision            0

homepage            https://lima-vm.io

description         Linux virtual machines

long_description    {*}{
    Lima launches Linux virtual machines with automatic file sharing
    and port forwarding (similar to WSL2). The original goal of Lima
    was to promote containerd including nerdctl (contaiNERD ctl) to
    Mac users, but Lima can be used for non-container applications as
    well. Lima also supports other container engines, such as Docker,
    Podman, Kubernetes, etc. Lima can also emulate other architectures
    if QEMU is installed.
}

categories          sysutils
installs_libs       no
license             Apache-2
maintainers         {gmail.com:herby.gillot @herbygillot} \
                    {macports.halostatue.ca:austin @halostatue} \
                    openmaintainer

checksums           rmd160  20acad0fd14dcf8ebe0404382d0965943bf27379 \
                    sha256  8d98889affd190068022b4596a34b0a749a9f41f340b9b55cefd7591cf30bbbb \
                    size    7425384

build.cmd           make
build.args-append   native

patchfiles          patch-Makefile.diff \
                    patch-usrlocalsharelimago.diff

platform darwin {
    # Lima defaults to VZ with macOS 13.5 and later; drop dependency from 14 onwards
    if {${os.major} < 23} {
        depends_run-append port:qemu
    }
}

variant additional_guestagents description {Guest agents for all architectures} {
  build.args-append  additional-guestagents
  depends_run-append port:qemu
}

notes {
    Lima has a variant (+additional_guestagents, disabled by default),\
    that builds guest agents for all supported architectures, requiring\
    qemu.
}

post-patch {
    reinplace "s|@@VERSION@@|${version}|g" ${worksrcpath}/Makefile
}

post-build {
    set limactl ${worksrcpath}/_output/bin/limactl

    set bash_completions_dir ${worksrcpath}/_output/share/bash-completion/completions
    set fish_completions_dir ${worksrcpath}/_output/share/fish/vendor_completions.d
    set zsh_completions_dir ${worksrcpath}/_output/share/zsh/site-functions

    xinstall -d ${bash_completions_dir} ${fish_completions_dir} ${zsh_completions_dir}

    system "${limactl} completion bash > ${bash_completions_dir}/${name}"
    system "${limactl} completion fish > ${fish_completions_dir}/${name}.fish"
    system "${limactl} completion zsh > ${zsh_completions_dir}/_${name}"
}

destroot {
    system -W ${worksrcpath} "make install DEST=${destroot}${prefix}"
}

github.livecheck.regex {([0-9.]+)}
