# -*- 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.20.0
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  5fc9503f1a213af3c2e2679bbfb3e95fcb619b50 \
                    sha256  02dd8936e62c1829c78597eefedfcab0aa820f5618da2871f38b5bc684891a54 \
                    size    646414

python.default_version 314

depends_build-append    port:py${python.version}-uv-build

depends_lib-append  port:py${python.version}-argcomplete \
                    port:py${python.version}-dateutil \
                    port:py${python.version}-psycopg2

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}/src/barman/config.py \
        ${worksrcpath}/docs/barman.conf \
        ${worksrcpath}/docs/_build/man/barman.1 \
        ${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}

    copy {*}[glob ${worksrcpath}/docs/_build/man/*.1] \
        ${destroot}${prefix}/share/man/man1/
    copy {*}[glob ${worksrcpath}/docs/_build/man/*.5] \
        ${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/
    }
}
