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

subport terraform-1.0 {
    set patchNumber     10
    checksums           rmd160  ce29c0b849a3e23d357e3615741e1ed1decd8092 \
                        sha256  e7595530a0dcdaec757621cbd9f931926fd904b1a1e5206bf2c9db6b73cee04d \
                        size    33021017
}

subport terraform-0.15 {
    set patchNumber     5
    checksums           rmd160  d57fbd764112a5cc7d46b04c8d17d220eb5fddc8 \
                        sha256  27d5ae2431240dff928e6483170b570782a8dd1a2b7c32ce1793097af1acb9bd \
                        size    33803323
}

subport terraform-0.14 {
    set patchNumber     11
    checksums           rmd160  9c9236549e343f402e3617cea6f5773f2695b06b \
                        sha256  5c0110a4dc44ec01edd159c69bf60cebd18540eaf168aacd8b37d828b70e265d \
                        size    34597577
}

subport terraform-0.13 {
    set patchNumber     7
    checksums           rmd160  aa35c4f8d1d03fb05736fb1dcabc3a243b8a72d6 \
                        sha256  d5fbb589bc35c2655d0705c26117135cbb25e4259f120415009e0e6427ea97c8 \
                        size    35672990
}

subport terraform-0.12 {
    set patchNumber     31
    checksums           rmd160  3b275cfdfa5adbe8834bf3b1eaf3a9352f1e2389 \
                        sha256  c1a6ca04026cebe7849610037ebc960609484c25f47a58344efaa7fcd5be1e56 \
                        size    29180819
}

subport terraform-0.11 {
    set patchNumber     15
    checksums           rmd160  0887b1812921fce1135170c23a9faf1775f5db5f \
                        sha256  b0d2c9f9068be007f9b8eff211a679e1f07368b640245871bb02a6c2cdf28c07 \
                        size    21882476
}

subport terraform_select {}

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

    replaced_by         ${latestVersion}
    version             1.0.10
    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}
    "
}
