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

name                    terraform
categories              sysutils
license                 MPL-2
platforms               darwin
homepage                https://www.terraform.io/downloads.html

maintainers             {emcrisostomo @emcrisostomo} \
                        {gmail.com:herby.gillot @herbygillot} \
                        @pedrohdz \
                        openmaintainer

# *NOTE* Remember to update `latestVersion` on a version upgrade.
set latestVersion       terraform-0.14

subport terraform-0.14 {
    set patchNumber     2
    checksums           rmd160  f7cca0cdd0d4ab04bd5ac4d95da4591052003939 \
                        sha256  31a7691f891f4e4c5d77b5eab9ecc86516df638a0b7cbde120c9e14bef68f7ac \
                        size    34406683
}

subport terraform-0.13 {
    set patchNumber     5
    checksums           rmd160  57785ef4740877593954d74a7c0649cd4e2392d3 \
                        sha256  03f7b636638c587c3b03a4b3d1d4cab77c872ad5f7e55405ddaf38dfb94e0e89 \
                        size    35665893
}

subport terraform-0.12 {
    set patchNumber     29
    checksums           rmd160  44524dfc91b58a87da550bb810215083784be3b6 \
                        sha256  fdcda98ff7b7e65832248f64ef6c2922e05036de25d40c5cdcd732c5117150aa \
                        size    29167077
}

subport terraform-0.11 {
    set patchNumber     14
    checksums           rmd160  830e133976923d63ffe2ef6292eb37569e88a801 \
                        sha256  829bdba148afbd61eab4aafbc6087838f0333d8876624fe2ebc023920cfc2ad5 \
                        size    13141311
}

subport terraform_select {}

if {${subport} eq ${name}} {
    PortGroup           obsolete 1.0

    replaced_by         ${latestVersion}
    version             0.14.2
    revision            0

} elseif {${subport} eq "terraform_select"} {
    version             0.0.0
    revision            0
    supported_archs     noarch

    description         Common files for selecting the default terraform \
                        version
    long_description    This port installs files that allow 'port select' \
                        to create links to the preferred default version \
                        of terraform.
    homepage            https://www.macports.org/

    distfiles
    use_configure       no
    build {}

    destroot {
        select::install terraform ${filespath}/base
        select::install terraform ${filespath}/none
    }

    livecheck.type     none

} else {
    set baseVersion     [lindex [split ${subport} "-"] 1]
    set baseName        terraform${baseVersion}

    version             ${baseVersion}.${patchNumber}
    supported_archs     x86_64
    depends_run         port:terraform_select

    description         A tool for building, changing, and versioning \
                        infrastructure safely and efficiently.
    long_description \
                        Terraform is an infrastructure as code software \
                        by HashiCorp. It allows users to define a datacenter \
                        infrastructure in a high-level configuration language, \
                        from which it can create an execution plan to build \
                        the infrastructure in a service provider such as AWS.

    master_sites        https://releases.hashicorp.com/${name}/${version}
    distname            ${name}_${version}_darwin_amd64

    use_configure       no
    use_zip             yes
    extract.mkdir       yes

    select.group        terraform
    select.file         ${workpath}/${baseName}

    build {
        file copy ${filespath}/terraformX.YY.template ${workpath}/${baseName}
        reinplace "s|@@BASE_VERSION@@|${baseVersion}|g" ${workpath}/${baseName}
    }

    destroot {
        xinstall ${worksrcpath}/terraform \
            ${destroot}${prefix}/bin/terraform${baseVersion}
    }

    set regexVersionPart [string map {. {\.}} $baseVersion]
    livecheck.type      regex
    livecheck.url       https://releases.hashicorp.com/terraform/
    livecheck.regex     >terraform_(${regexVersionPart}\\.\\d+)<

    notes "
    To make this the default terraform run:
        sudo port select --set terraform ${baseName}
    "
}
