Files

76 lines
2.5 KiB
Tcl

# -*- 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
name postgresql16-server
version 16.14
revision 0
categories databases
platforms {darwin any}
maintainers {gmail.com:davidgilman1 @dgilman} \
openmaintainer
license Permissive
set rname postgresql16
description run ${rname} as server
long_description {*}${description}
distfiles
homepage https://www.postgresql.org/
master_sites postgresql
depends_run port:${rname}
supported_archs noarch
use_configure no
build {}
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} shell=/usr/bin/false group=${dbgrp} \
home=${prefix}/var/db \
realname=PostgreSQL-16\ Server
startupitem.create yes
startupitem.init \
"PGCTL=${libdir}/bin/pg_ctl"
startupitem.start \
"sudo -u ${dbuser} /bin/sh -c \"\${PGCTL} -D \${POSTGRESQL16DATA:=${dbdir}} start -l ${logdir}/postgres.log\""
startupitem.stop \
"sudo -u ${dbuser} /bin/sh -c \"\${PGCTL} -D \${POSTGRESQL16DATA:=${dbdir}} stop -s -m fast\""
destroot {
xinstall -m 755 -d ${destroot}${logdir}
touch ${destroot}${logdir}/postgres.log
system "chown ${dbuser}:${dbgrp} ${destroot}${logdir}/postgres.log"
}
post-activate {
# previous versions of this port set the homedir to $dbhome which
# contains the postgresql major version in the path.
# as a migration strategy, update the user's homedir,
# and in postgresql 18+ you can remove this.
set dscl [findBinary dscl $portutil::autoconf::dscl_path]
system "${dscl} . -delete /Users/${dbuser} NFSHomeDirectory"
system "${dscl} . -create /Users/${dbuser} NFSHomeDirectory ${prefix}/var/db"
system "${dscl} . -delete /Users/${dbuser} UserShell"
system "${dscl} . -create /Users/${dbuser} UserShell /usr/bin/false"
}
notes "\nTo create a database instance, after install do\n\
sudo port select postgresql ${rname}\n\
sudo mkdir -p ${dbdir}\n\
sudo chown ${dbuser}:${dbgrp} ${dbdir}\n\
sudo -u ${dbuser} /bin/sh -c \'cd ${dbhome} && ${libdir}/bin/initdb -D ${dbdir}\' "
livecheck.type none