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

name                barman
version             3.16.2
revision            0
categories          databases
platforms           {darwin any}
supported_archs     noarch
license             GPL-3+
maintainers         {makr @mohd-akram} openmaintainer

description         Backup and Recovery Manager for PostgreSQL

long_description    Barman (Backup and Recovery Manager) is an open-source \
                    administration tool for disaster recovery of PostgreSQL \
                    servers written in Python. It allows your organisation to \
                    perform remote backups of multiple servers in business \
                    critical environments to reduce risk and help DBAs during \
                    the recovery phase.

homepage            https://www.pgbarman.org

checksums           rmd160  d01349ee733ead2efe353f34c3c2fad402ef06da \
                    sha256  ab0c6f4f5cfc0cc12b087335bdd5def2edbca32bc1bf553cc5a9e78cd83df43a \
                    size    467037

python.default_version 313

# setuptools for distutils
# https://github.com/EnterpriseDB/barman/issues/750
depends_lib-append  port:py${python.version}-argcomplete \
                    port:py${python.version}-dateutil \
                    port:py${python.version}-psycopg2 \
                    port:py${python.version}-setuptools

set conf_dir        ${prefix}/etc/barman.d
set home_dir        ${prefix}/var/lib/${name}
set log_dir         ${prefix}/var/log/${name}

add_users           ${name} group=${name} home=${home_dir} \
                    realname=Backup\ and\ Recovery\ Manager\ for\ PostgreSQL \
                    shell=/bin/sh

post-patch {
    reinplace "s|/etc/|${prefix}/etc/|g" \
        ${worksrcpath}/barman/config.py \
        ${worksrcpath}/docs/barman.conf \
        ${worksrcpath}/docs/_build/man/barman.5
    reinplace "s|/var/|${prefix}/var/|g" \
        ${worksrcpath}/docs/barman.conf \
        ${worksrcpath}/docs/_build/man/barman.5
}

destroot.keepdirs   ${destroot}${conf_dir} \
                    ${destroot}${home_dir} \
                    ${destroot}${log_dir}

post-destroot {
    xinstall -d ${destroot}${prefix}/share/doc/${name}
    copy ${worksrcpath}/docs/barman.conf ${destroot}${prefix}/share/doc/${name}

    foreach p [glob ${destroot}${python.prefix}/share/man/man1/*] {
        ln -s [string range $p [string length ${destroot}] end] \
            ${destroot}${prefix}/share/man/man1/
    }
    foreach p [glob ${destroot}${python.prefix}/share/man/man5/*] {
        ln -s [string range $p [string length ${destroot}] end] \
            ${destroot}${prefix}/share/man/man5/
    }

    xinstall -d ${destroot}${conf_dir}
    xinstall -o ${name} -g ${name} -d ${destroot}${home_dir}
    xinstall -o ${name} -g ${name} -d ${destroot}${log_dir}
}

post-activate {
    if {![file exists ${prefix}/etc/barman.conf]} {
        copy ${prefix}/share/doc/${name}/barman.conf ${prefix}/etc/
    }
}
