aboutsummaryrefslogtreecommitdiff
path: root/lib/60-postgres
diff options
context:
space:
mode:
authorCullum Smith <cullum@sacredheartsc.com>2024-10-12 08:14:59 -0400
committerCullum Smith <cullum@sacredheartsc.com>2024-10-12 08:15:33 -0400
commit99b8524c16cc99ceeaf1ebf588f2fc0f2c0fbe0a (patch)
tree3ffa4113f23eca6cea8ff2c94ba7ce60188d943e /lib/60-postgres
parent1c882c769e5476b5cb3fa294257c76165a7a6f46 (diff)
downloadinfrastructure-99b8524c16cc99ceeaf1ebf588f2fc0f2c0fbe0a.tar.gz
add a bunch of hostclasses
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
+}