mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
76 lines
2.5 KiB
Tcl
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
|