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

# Final release was on 2021-11-08
deprecated.upstream_support no

name                postgresql96-server
version             9.6.24
revision            1
categories          databases
maintainers         {jwa @jyrkiwahlstedt}
license             Permissive
supported_archs     noarch
platforms           {darwin any}

set rname           postgresql96

description         run ${rname} as server
long_description    {*}${description}

homepage            https://www.postgresql.org/
master_sites        postgresql

distfiles

set libdir          ${prefix}/lib/${rname}
set dbdir           ${prefix}/var/db/${rname}/defaultdb
set logdir          ${prefix}/var/log/${rname}
set dbuser          postgres
set dbgrp           postgres
set dbhome          ${prefix}/var/db/${rname}

add_users           ${dbuser} group=${dbgrp} \
                    home=${prefix}/var/db/${rname} \
                    realname=PostgreSQL-96\ Server

depends_run         port:bash \
                    port:${rname}

use_configure       no

build               {}

startupitem.create  yes
startupitem.init    "PGCTL=${libdir}/bin/pg_ctl"
startupitem.start   "sudo -u ${dbuser} ${prefix}/bin/bash -c \"\${PGCTL} -D \${POSTGRESQL96DATA:=${dbdir}} start -l ${logdir}/postgres.log\""
startupitem.stop    "sudo -u ${dbuser} ${prefix}/bin/bash -c \"\${PGCTL} -D \${POSTGRESQL96DATA:=${dbdir}} stop -s -m fast\""

destroot {
    xinstall -d ${destroot}${logdir}
    touch ${destroot}${logdir}/postgres.log
    file attributes ${destroot}${logdir}/postgres.log \
        -owner ${dbuser} -group ${dbgrp}
}

# https://trac.macports.org/ticket/64286
post-activate {
    set dbuser_UserShell \
        [regsub -- {^UserShell:[[:space:]]+} [exec /bin/sh -c "dscl . -read /Users/${dbuser} UserShell || true"] {}]
    if {${dbuser_UserShell} ne "" && ${dbuser_UserShell} ne {/usr/bin/false}} {
        system "dscl . -change /Users/${dbuser} UserShell ${dbuser_UserShell} /usr/bin/false"
    }
}

notes "\nTo create a database instance, after install do\n\
        sudo mkdir -p ${dbdir}\n\
        sudo chown ${dbuser}:${dbgrp} ${dbdir}\n\
        sudo -u ${dbuser} bash -c \'cd ${dbhome} && ${libdir}/bin/initdb -D ${dbdir}\'"

livecheck.type      none