aboutsummaryrefslogtreecommitdiff
path: root/lib/60-postgres
diff options
context:
space:
mode:
Diffstat (limited to 'lib/60-postgres')
-rw-r--r--lib/60-postgres24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/60-postgres b/lib/60-postgres
new file mode 100644
index 0000000..af37c27
--- /dev/null
+++ b/lib/60-postgres
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+postgres_run(){
+ PGSSLMODE=require PGPASSWORD="$boxconf_password" psql \
+ --no-align \
+ --echo-all \
+ --tuples-only \
+ --username="$boxconf_username" \
+ -v ON_ERROR_STOP=1 \
+ "$@"
+}
+postgres_create_role(){
+ # $1 = postgres_host, $2 = username
+ cat <<EOF | postgres_run -h "${1}" -d postgres
+SELECT 'CREATE ROLE "${2}" WITH LOGIN' WHERE NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${2}')\\gexec
+EOF
+}
+
+postgres_create_database(){
+ # $1 = postgres_host, $2 = dbname, $3 = owner
+ cat <<EOF | postgres_run -h "${1}" -d postgres
+SELECT 'CREATE DATABASE "${2}" OWNER "${3:-postgres}"' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${2}')\\gexec
+EOF
+}