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

name                pflogsumm
version             1.1.5
revision            1
categories          mail
license             GPL-2+
maintainers         nomaintainer
description         Produce Postfix MTA logfile summary
long_description    Pflogsumm is a log analyzer/summarizer for the \
                    Postfix MTA.  It is designed to provide an over-view \
                    of Postfix activity, with just enough detail to give \
                    the administrator a "heads up" for potential trouble \
                    spots. \
                    Pflogsumm generates summaries and, in some cases, \
                    detailed reports of mail server traffic volumes, \
                    rejected and bounced email, and server warnings, \
                    errors and panics. \
                    Also installs Chris Cappuccio's CGI script for \
                    browser access to the Pflogsumm output.
homepage            https://jimsun.linxnet.com/postfix_contrib.html
master_sites        https://jimsun.linxnet.com/downloads/ \
                    https://www.nmedia.net/~chris/mail/:cgi

distfiles-append    mail-cgi.txt:cgi

checksums           ${name}-${version}.tar.gz \
                    rmd160  7ae3c7ce49861834784c3aaaa32e3adb99ef0da0 \
                    sha256  da6443679117de5109fd7d65fe915286c20ad1ecee63fe07d8cdddd0b75fe466 \
                    size    47130 \
                    mail-cgi.txt \
                    rmd160  7e683878f45dd401764a62ab52ad79c5f2f36a97 \
                    sha256  1bb4fe670fd7b544b9ab0425783573be7a04529fd1f7a6ccd5680fa089bfbb6d \
                    size    5370

extract.only        ${distname}${extract.suffix}
platforms           {darwin any} freebsd
supported_archs     noarch

perl5.branches      5.34

depends_lib         port:perl${perl5.major}
depends_run         port:p${perl5.major}-date-calc

set cgi_path        ""
set maillog_path    ""

platform darwin {
    global cgi_path maillog_path
    set maillog_path "/var/log/mail.log"

    # MacPorts Apache interoperability
    if {[file exists ${prefix}/sbin/httpd]} {
        set cgi_path "${prefix}/www/cgi-bin"
    } else {
        set cgi_path "/Library/WebServer/CGI-Executables"
        destroot.violate_mtree  yes
    }
}

platform freebsd {
    global cgi_path maillog_path
    set cgi_path "/usr/local/www/cgi-bin"
    set maillog_path "/var/log/maillog"

    # MacPorts Apache interoperability
    if {[file exists ${prefix}/sbin/httpd]} {
        set cgi_path "${prefix}/www/cgi-bin"
    }
}

post-extract {
    file copy -force ${distpath}/mail-cgi.txt ${worksrcpath}/${name}.cgi
}

use_configure       no

build {
    reinplace "s|^#!.*perl|#!${perl5.bin}|" ${worksrcpath}/${name}.pl
    reinplace "s|mail.empnet.com|[exec hostname]|" ${worksrcpath}/${name}.cgi
    reinplace "s|/var/log/maillog|${maillog_path}|" ${worksrcpath}/${name}.cgi
    reinplace "s|${maillog_path}\[.\]\[0-3\]|&.gz|" ${worksrcpath}/${name}.cgi
    reinplace "s|/usr/ucb/ps|[binaryInPath ps]|" ${worksrcpath}/${name}.cgi
    reinplace "s|zcat=\"/bin/cat|zcat=\"[binaryInPath zcat]|" ${worksrcpath}/${name}.cgi
    reinplace "s|/bin/cat|[binaryInPath cat]|" ${worksrcpath}/${name}.cgi
    reinplace "s|/usr/local/bin/${name}.pl|${prefix}/bin/${name}|" ${worksrcpath}/${name}.cgi
    reinplace "s|^opts=|# &|" ${worksrcpath}/${name}.cgi
    reinplace "s|^#opts=|opts=|" ${worksrcpath}/${name}.cgi
    reinplace "s|mail.cgi|${name}.cgi|" ${worksrcpath}/${name}.cgi
    reinplace "s|\$pflog \$opts.*$|& 2>\\&1|" ${worksrcpath}/${name}.cgi
}

destroot {
    xinstall -m 0755 ${worksrcpath}/${name}.pl \
        ${destroot}${prefix}/bin/${name}
    xinstall -m 0644 ${worksrcpath}/${name}.1 \
        ${destroot}${prefix}/share/man/man1
    xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${name}
    xinstall -m 0644 ${worksrcpath}/${name}-faq.txt \
        ${destroot}${prefix}/share/doc/${name}
    xinstall -d -m 0755 ${destroot}${cgi_path}
    if {[file exists ${maillog_path}]} {
        set maillog_group [file attributes ${maillog_path} -group]
    } else {
        set maillog_group wheel
    }
    xinstall -m 02755 -g ${maillog_group} ${worksrcpath}/${name}.cgi \
        ${destroot}${cgi_path}
}

livecheck.type      regex
livecheck.url       ${homepage}
livecheck.regex     "${name}-(\\d+(?:\\.\\d+)*)${extract.suffix}"
