aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/60-ldap18
-rw-r--r--lib/60-postgres24
2 files changed, 38 insertions, 4 deletions
diff --git a/lib/60-ldap b/lib/60-ldap
index d262849..249fed0 100644
--- a/lib/60-ldap
+++ b/lib/60-ldap
@@ -11,7 +11,7 @@ ldap_add(){
if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then
ldapadd -Q "$@"
else
- ldapadd -ZZ -D "$boxconf_dn" -w "$boxconf_password" "$@"
+ ldapadd -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" "$@"
fi
}
fi
@@ -25,7 +25,7 @@ ldap_modify(){
if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then
ldapmodify -Q "$@"
else
- ldapmodify -ZZ -D "$boxconf_dn" -w "$boxconf_password" "$@"
+ ldapmodify -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" "$@"
fi
}
}
@@ -36,7 +36,7 @@ ldap_delete(){
if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then
ldapdelete -Q "$@"
else
- ldapdelete -ZZ -D "$boxconf_dn" -w "$boxconf_password" "$@"
+ ldapdelete -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" "$@"
fi
}
@@ -46,7 +46,7 @@ ldap_search(){
if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then
ldapsearch -QLLL "$@"
else
- ldapsearch -o ldif_wrap=no -LLLZZ -D "$boxconf_dn" -w "$boxconf_password" "$@"
+ ldapsearch -o ldif_wrap=no -x -LLLZZ -D "$boxconf_dn" -w "$boxconf_password" "$@"
fi
}
@@ -86,3 +86,13 @@ ldap_dn_exists(){
# $1 = DN
ldap_search -s base -b "$1" dn > /dev/null 2>&1
}
+
+ldap_passwd(){
+ # Set the userPassword attribute on a DN.
+ # $1 = DN, $2 = password
+ if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then
+ ldappasswd -Q -s "$2" "$1"
+ else
+ ldappasswd -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" -s "$2" "$1"
+ fi
+}
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
+}