epic-ts
authorMichael Wagner <michael@wagnertech.de>
Thu, 18 Feb 2021 16:57:14 +0000 (17:57 +0100)
committerMichael Wagner <michael@wagnertech.de>
Thu, 18 Feb 2021 16:57:14 +0000 (17:57 +0100)
debian/kivitendo.postinst

index 4f9364a..f217489 100755 (executable)
@@ -14,13 +14,46 @@ fi
 # 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