# test DB login
if ! su postgres -c "psql -c '\du'" | grep kivitendo >/dev/null
then
- echo "No user named 'kivitendo' found. It is now created. Use the same password!"
- su postgres -c "createuser -dPs kivitendo"
+ echo "No user named 'kivitendo' found. It is now created."
+ if [ -n "$a" ]
+ then
+ # password is given
+ su postgres -c "createuser -ds kivitendo ; psql -c 'ALTER USER kivitendo WITH PASSWORD \"$a\";'"
+ else
+ su postgres -c "createuser -dPs kivitendo"
+ fi
fi
main=$(ls -d /etc/postgresql/*/main/)
if ! grep kivitendo $main/pg_hba.conf >/dev/null
then
- echo "local all kivitendo md5" >> $main/pg_hba.conf
+ echo "adding kivitendo user access to $main/pg_hba.conf"
+ awk 'BEGIN {
+ found=0; }
+ /# "local/ {
+ if (found == 0) {
+ print;
+ print "local all kivitendo md5";
+ found=1;
+ next;
+ }}
+ /^local.*all.*all/ {
+ if (found == 0) {
+ print "local all kivitendo md5";
+ print;
+ found=1;
+ next;
+ }}
+ /^host/ {
+ if (found == 0) {
+ print "local all kivitendo md5";
+ print;
+ found=1;
+ next;
+ }}
+ {print;}
+ ' $main/pg_hba.conf > /tmp/pg_hba.conf
+ mv /tmp/pg_hba.conf $main/pg_hba.conf
+ chown postgres:postgres $main/pg_hba.conf
systemctl reload postgresql
fi