# -*- 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/axllent/mailpit 1.31.4 v
revision            0
categories          mail devel
maintainers         {@vijay8i} openmaintainer
license             MIT
installs_libs       no

description         SMTP server that captures outgoing mail and exposes a web UI for inspection
long_description    Mailpit runs a local SMTP server that accepts messages \
                    from applications under development and stores them in \
                    memory or on disk instead of delivering them. Captured \
                    messages are viewable through a web interface that renders \
                    HTML and plain-text, displays attachments, and supports \
                    full-text search. A REST API is also provided for \
                    programmatic access to stored messages.

homepage            https://mailpit.axllent.org

checksums           ${distname}${extract.suffix} \
                        rmd160  31def008ce01b858f58c93e62db9ccb285947aa2 \
                        sha256  cd4d0d40044dde07df8ff5c168f6d95356770dca45627a9f9910ba66e70d7832 \
                        size    562532

go.vendors          modernc.org/sqlite \
                        repo    gitlab.com/cznic/sqlite \
                        lock    v1.60.1 \
                        rmd160  ebb0f17f813ed79e1d0dfb01a2ffea6634ae6214 \
                        sha256  f6c32848a5022166b95e0394765f0d9d751ee6069eb08e959d5ccaed5fa26023 \
                        size    20650439 \
                    modernc.org/memory \
                        repo    gitlab.com/cznic/memory \
                        lock    v1.12.1 \
                        rmd160  463a6b6082424d0375144d75e853739bae30583f \
                        sha256  6cbab4f83dc19707b20b123296dc3da9f600459fa53cc8c96bec98d98617225a \
                        size    36387 \
                    modernc.org/mathutil \
                        repo    gitlab.com/cznic/mathutil \
                        lock    v1.7.1 \
                        rmd160  72896f28bc9aa03a73dfd3b0a6f8e6b995cc3905 \
                        sha256  78174f3ed1cea720592a31a8fc154278802d3fd8e461a074ed3caad1752f4fb6 \
                        size    122179 \
                    modernc.org/libc \
                        repo    gitlab.com/cznic/libc \
                        lock    v1.77.1 \
                        rmd160  6f0bd057f401859536c9faaab5d911fbd469bb70 \
                        sha256  356501ceff96717c3effbc55c96e7500d0fa5d9160f29c4ebb6abb16b71c89bb \
                        size    15815306 \
                    golang.org/x/time \
                        lock    v0.16.0 \
                        rmd160  c1864cb93013bd47de19daab93895cb19357ad1b \
                        sha256  68c12d308fad52a71b54285dc6f8f1149c5b575847b67544b94f092f9f0de673 \
                        size    12527 \
                    golang.org/x/text \
                        lock    v0.42.0 \
                        rmd160  302e56745bfea393bfb08e557b03a2869bcec7c9 \
                        sha256  857cac6cabae7ad0adc0a2c682b9136015bd30f065afc7e3530e7964bbebf456 \
                        size    6774645 \
                    golang.org/x/sys \
                        lock    v0.48.0 \
                        rmd160  da444762c01e32fdc55021f225d24d7dcc6df2ea \
                        sha256  59772c80fdc72cec509c5797a316a8acb2e5ec4428b3e556e19f30f223d6198a \
                        size    1554657 \
                    golang.org/x/net \
                        lock    v0.59.0 \
                        rmd160  66e2c2d4fbc6f8150565d0bfc2d871d0acfe872d \
                        sha256  556d55f97742ebf18e915ad7f940d2afecd24bd9669804c990b08c25a0553821 \
                        size    1460608 \
                    golang.org/x/mod \
                        lock    v0.41.0 \
                        rmd160  f81b240f81024550374b8139c706028746d3d68e \
                        sha256  132dd3390f436b8a019feb908bc17c70adcdfdabf42f97ebb5489a3385e18f75 \
                        size    129478 \
                    golang.org/x/image \
                        lock    v0.46.0 \
                        rmd160  274c3bd5ce4efe7531cd34d2f20c8c94516272b7 \
                        sha256  7be8bd1f1913c3425d390d8440a24cf75ba58f32ba0e21d27209188374e67e03 \
                        size    5137016 \
                    golang.org/x/crypto \
                        lock    v0.57.0 \
                        rmd160  887cd241634e7024c19cb677acd0bdc77560671f \
                        sha256  68b9f2136b40b20eb6365be86e898160d358d670794c2ebe0d043b40e9ed0835 \
                        size    2169605 \
                    github.com/vanng822/go-premailer \
                        lock    v1.37.0 \
                        rmd160  1ba1e0dcfb8740c633131534a929cf19ae79be92 \
                        sha256  3b7bf9715b1cb185b59812ca9895229d9dccecb607872530116f7b20fa990f01 \
                        size    13239 \
                    github.com/vanng822/css \
                        lock    v1.0.1 \
                        rmd160  5ac17a5c34a7a9c1f1b31c8d4a81c7c0c258e73a \
                        sha256  599b6de1403c1dcf48e4fb503b23ab7d44c69c5709257ec497411ed5b724da80 \
                        size    9236 \
                    github.com/valyala/bytebufferpool \
                        lock    v1.0.0 \
                        rmd160  32bddf2031e54e583df580e989cfd9be2f51bda8 \
                        sha256  849a2f097cc06fb40219bd350225e99bfdeb1e9105b428d72f07953f44808531 \
                        size    5031 \
                    github.com/tg123/go-htpasswd \
                        lock    v1.2.5 \
                        rmd160  32ac0c0f0290a67a317602414ec65f3aaeca727e \
                        sha256  ee9a2ee4e2bc83e7494f34841d762addcb7aca030008270fec4104670ffe5144 \
                        size    90379 \
                    github.com/ssor/bom \
                        lock    6386211fdfcf \
                        rmd160  93d18bd4b1376d90faa46b0d8d8578d0958c8d5b \
                        sha256  61996b134ab2fdca75bfee9cbcbb89110fb21223a07959e292936f8b6f008a57 \
                        size    1802 \
                    github.com/spf13/pflag \
                        lock    v1.0.10 \
                        rmd160  eb2e68c61d88ce1e22cf4b75b31de9815ee375b5 \
                        sha256  8e29e9893c782030a639e4e1ff4442cef352fa54b64aaa11c35163d550ce10dd \
                        size    63166 \
                    github.com/spf13/cobra \
                        lock    v1.10.2 \
                        rmd160  88d3b436be943e051ed95bb512ad07508cffab97 \
                        sha256  35dc1e3b51a9ef4bee86dc22d335293a1d9d9cae242a6efc605fee8f75808d31 \
                        size    201456 \
                    github.com/rwcarlsen/goexif \
                        lock    9e8deecbddbd \
                        rmd160  38d541043bde6378d6fa177b89fdc76232ce72a6 \
                        sha256  285f658253577797e2f8336ee94decda856709bec66fe92cf719d9f046460475 \
                        size    936389 \
                    github.com/rqlite/gorqlite \
                        lock    50d445fd0ab9 \
                        rmd160  10dc8aa42b997e41ea34fd793e6d06282000c408 \
                        sha256  da51542ad01bd9b752d9f692d32d8d504519f1137b160a9f3983b87f89654dac \
                        size    36444 \
                    github.com/remyoudompheng/bigfft \
                        lock    24d4a6f8daec \
                        rmd160  063388692f096c20d5776d2b4bcdbb7a0a19fc05 \
                        sha256  3821c67a36f45ac9f2216b5765468e670b5b09cc9d52acfa5f7e407cc995eaed \
                        size    14834 \
                    github.com/pkg/errors \
                        lock    v0.9.1 \
                        rmd160  dc065c655f8a24c6519b58f9d1202eb266ecda40 \
                        sha256  208d21a7da574026f68a8c9818fa7c6ede1b514ef9e72dc733b496ddcb7792a6 \
                        size    13422 \
                    github.com/olekukonko/tablewriter \
                        lock    v1.1.5 \
                        rmd160  3165514f855550f82bcda6e0ddbe1de44887c7d9 \
                        sha256  2b3e969b65aea80ca215a31709c99014e4df74a7be8ec21cf31baa01b7e8ce19 \
                        size    432508 \
                    github.com/olekukonko/ll \
                        lock    v0.1.8 \
                        rmd160  309d4cedee24a9bf735dda2d4ba5c3100224ada9 \
                        sha256  690a89cd51d7902a9a10b40a5081423163acb22de03c903caf3a7150d4169dd9 \
                        size    315187 \
                    github.com/olekukonko/errors \
                        lock    v1.3.0 \
                        rmd160  65f3da18d6da1559bcb5f9c62edb97748e21aa93 \
                        sha256  5af2c04ff2bbd9ebc1b054bb32d9e83cecc5e53f52f581705f0fa8c80c03500f \
                        size    96347 \
                    github.com/olekukonko/cat \
                        lock    50322a0618f6 \
                        rmd160  84cab2cb154c2eeca9defa29d169bb83b352ad38 \
                        sha256  add453f3b0fe4a68ff7067041986f268820c82a1991b95ff5b178f69689a63e6 \
                        size    18587 \
                    github.com/ncruces/go-strftime \
                        lock    v1.1.0 \
                        rmd160  ac5a0f29ef3737ed7f1abe336f5f23e358ad1c9b \
                        sha256  9c445e30805ef1a58c711dfa52395ee7727acd97636bed7509844fc776700c6f \
                        size    12080 \
                    github.com/mattn/go-runewidth \
                        lock    v0.0.30 \
                        rmd160  0ec7a174f97f64f99d3f6947e51df23dad569524 \
                        sha256  321b37bbc12e6e0576ab3cdc15c7992ddf3d7bc724998d1d1719eb2bc9170b26 \
                        size    35461 \
                    github.com/mattn/go-isatty \
                        lock    v0.0.24 \
                        rmd160  06eb44028c6d8e99905f1ffbdb75a35de0ade2f2 \
                        sha256  8b1e834f93ebe2e7f607a82bb236c8ec7bdbf2a58fe9ba29cf148d309c8ae227 \
                        size    4960 \
                    github.com/mattn/go-colorable \
                        lock    v0.1.15 \
                        rmd160  2f710eaa17e77e240a7b46c71fcdf985ecaa50de \
                        sha256  b2656dafad2867eb8a85424824df59e5b0be1b55ec0a074ec404c0a633350a04 \
                        size    10015 \
                    github.com/leporo/sqlf \
                        lock    v1.4.0 \
                        rmd160  1d8525548f63fb5b5a8c609893c09f6c9a72f328 \
                        sha256  030e1b2ceb2785971e3af15f6f725387cca1cf29b659699201e36087c81eaac6 \
                        size    20536 \
                    github.com/klauspost/compress \
                        lock    v1.20.1 \
                        rmd160  d76892205c498e6668abd6d290d93955c96a6324 \
                        sha256  b6e0bcd422afb5b8df01e7792ea94fefe682b5bebb2dd69b33527842f0ab4db9 \
                        size    39482923 \
                    github.com/jhillyerd/enmime/v2 \
                        lock    v2.5.0 \
                        rmd160  71831ce754d4551c7db49280cefe598dae7a54f5 \
                        sha256  dfac4487d1895a59c5ae7e234811ad7e02914e900e26cc9b9ba6be0a40b6af2d \
                        size    191724 \
                    github.com/inconshreveable/mousetrap \
                        lock    v1.1.0 \
                        rmd160  88f9577df93ac0f8801d8960adc7f28e38867f3e \
                        sha256  f69af10ff08c0e87f92dac3ee5172d8ed02463725b74edfc8943ef018a1a632d \
                        size    5343 \
                    github.com/inbucket/html2text \
                        lock    v1.0.0 \
                        rmd160  d542480478c63be95dfc47f24122e6811a0bfd5b \
                        sha256  065f1b3d1d2e6fb44c3b911009c036faa1703c759cdd6a20adaf82fdccc27faf \
                        size    19112 \
                    github.com/gorilla/websocket \
                        lock    v1.5.3 \
                        rmd160  3c38c85e08c20fe93c0100bf884feb8fe45fbaed \
                        sha256  bbdca57ccb9369617abde8372d36f0b2ef7cf6208debdbb9ade97808d2ce42a7 \
                        size    54891 \
                    github.com/gorilla/css \
                        lock    v1.0.1 \
                        rmd160  bc1e2160af4746e5e1c3a0911eddcdca0855dba2 \
                        sha256  7b38e56aedbf7b242516a363f609eab447cf7e5c8e8aea62ca5ba298fb0a6529 \
                        size    7768 \
                    github.com/google/uuid \
                        lock    v1.6.0 \
                        rmd160  3d4f6f95018c6313f7258805845eb2a7e717850c \
                        sha256  72700459e75cad2b36586e8a13aa12c2d6248c45db24d1eebf41e18b1ec1c811 \
                        size    20895 \
                    github.com/gomarkdown/markdown \
                        lock    94fc73f6b1a3 \
                        rmd160  71b6aa67aeeb17f0ec43ec107df87f603ed82455 \
                        sha256  09fc8dbb8b5542edde55ac8dc5c82b4bad40bd5e3129f73f47aa82b0f67b3860 \
                        size    143424 \
                    github.com/gogs/chardet \
                        lock    b7413eaefb8f \
                        rmd160  a65e40cd683a4fe3bdfe96f6937db4b51541ee4b \
                        sha256  bd60a7f21e49752b835cc15c05ee0ec6969496367a15848d416047d903b0d46b \
                        size    267319 \
                    github.com/goccy/go-yaml \
                        lock    v1.19.2 \
                        rmd160  07fa4d9bd9e018a5110b7b2e88cb37fab3e45a87 \
                        sha256  1522fe58003c4d6185327ef6b8e1f3189cc10e1dd8f59612099cf514eb7dd12f \
                        size    666918 \
                    github.com/goccy/go-json \
                        lock    v0.11.2 \
                        rmd160  f829184b1ca870518814dca0a92315d5a532d234 \
                        sha256  d472e8afa023ef8f68ba1389b5fd60cf9e682b22f6b72b701cbcb0c90ca92b64 \
                        size    705780 \
                    github.com/fatih/color \
                        lock    v1.19.0 \
                        rmd160  a64620e5587b3d1eb425e15d7fc1ccc7b0a280f2 \
                        sha256  1203fa77d5f8d487636a021778e626c37c37e4eeb103c580f722339c400ae039 \
                        size    13341 \
                    github.com/dustin/go-humanize \
                        lock    v1.1.0 \
                        rmd160  f75891c074ba26738bb518ec86a0db5ef6321e25 \
                        sha256  bc895db1ef8af368d73d5b9234e9daf5145ee1bf0715922bddc731f7b7806999 \
                        size    24400 \
                    github.com/clipperhouse/uax29/v2 \
                        lock    v2.7.0 \
                        rmd160  9cd62348ce0722d85ff21f2f91a05a68f877aa08 \
                        sha256  66d66a451f74709ab74902e7bca146abf376dbf0bc701b713ee600e3d3d6a5b3 \
                        size    320846 \
                    github.com/clipperhouse/displaywidth \
                        lock    v0.11.0 \
                        rmd160  26a2f5e784f0414e55714156bab744b0d901c5c1 \
                        sha256  d9587478830f552e284be30f010c2e57be7679d5c883a256b9df4b6889827347 \
                        size    250271 \
                    github.com/cespare/xxhash/v2 \
                        lock    v2.3.0 \
                        rmd160  dfed275969e04769f613bd08336420dc9009794a \
                        sha256  79cc788ad30f0d7987fb1f259f21477a74178e30f4a2b2803af2b43c3ebcfa91 \
                        size    12704 \
                    github.com/cention-sany/utf7 \
                        lock    26cad61bd60a \
                        rmd160  b18fb69080c230a9d0adab0dde235427b5bd21a1 \
                        sha256  1a4993a3b3233176632209d787ba4ea2dc6b82310202f8b26946af308f3598c6 \
                        size    8516 \
                    github.com/axllent/semver \
                        lock    v1.0.0 \
                        rmd160  0416d846cd0887fee09dbc5f9c7c59612fbbd4ed \
                        sha256  d52d7cd8818669a8424090ab9b212f80d5549e152a43b9d4235c28c2a99dcb59 \
                        size    4798 \
                    github.com/axllent/ghru/v2 \
                        lock    v2.2.3 \
                        rmd160  8627805cdd674b3100fd986b2b5d2cb279a55200 \
                        sha256  d83bdf1e751759ab3852b486dd410f9021e78558a4fa6a1fe1e4895b536836b5 \
                        size    13607 \
                    github.com/araddon/dateparse \
                        lock    6b43995a97de \
                        rmd160  6917dfacee739f408b18077506c4e1cd0506365f \
                        sha256  d99c72ffd8aa7d2077d1a9e844efbc3237bc018cd05aec11cc44e216ddabed4d \
                        size    27524 \
                    github.com/andybalholm/cascadia \
                        lock    v1.3.5 \
                        rmd160  9341b1b500d7806709e373aa31dadbc4319b7f0c \
                        sha256  a6f55a1b607c48af03f42844c213fb2b3dfd588bed235fca9dfc4b096d307b82 \
                        size    33853 \
                    github.com/PuerkitoBio/goquery \
                        lock    v1.13.0 \
                        rmd160  9abb9ffaffb27c086ee1e23b0b5cc8ce5e49efc1 \
                        sha256  bc259fddb8a8b4c48225d551785020bd816467cb5badcc391079dcdb63d17b06 \
                        size    109077 \
                    github.com/GehirnInc/crypt \
                        lock    8cc1b52080c5 \
                        rmd160  804a651ca189e52333b507a3ad44e31edfa7c912 \
                        sha256  87bbebc881c652d746900d343c597f7481454f13bf3a331c1a795cf95f9b0ecb \
                        size    11447

build.env-append    CGO_ENABLED=0

post-patch {
    # The GOPATH-mode build ignores the go directive in go.mod and links in
    # pre-Go 1.22 GODEBUG defaults (httpmuxgo121=1), so the method-based
    # routes ("GET /...") never match and every HTTP request returns 404.
    # Restore the defaults of the Go version declared in go.mod.
    set fd [open ${worksrcpath}/godebug_macports.go w]
    puts $fd "//go:debug default=go1.26\n\npackage main"
    close $fd
}

build.pre_args-append \
                    -ldflags \"-s -w \
                        -X github.com/axllent/mailpit/config.Version=v${version}\" \
                    -o ${name}

variant ui description {Enable the Web UI} {
    # Requires Node.js to build the Vue frontend.
    # Mailpit uses unconditional //go:embed — no -tags ui needed.
    depends_build-append \
                    path:bin/npm:npm

    pre-build {
        system -W ${worksrcpath} \
            "${prefix}/bin/npm ci"
        system -W ${worksrcpath} \
            "${prefix}/bin/npm run build"
    }
}

destroot {
    xinstall -m 0755 ${worksrcpath}/${name} ${destroot}${prefix}/bin/
}
