diff --git a/cdist/conf/type/__postgres_role/explorer/state b/cdist/conf/type/__postgres_role/explorer/state
index c8e1fa9d..110d29d5 100755
--- a/cdist/conf/type/__postgres_role/explorer/state
+++ b/cdist/conf/type/__postgres_role/explorer/state
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/sh -e
#
# 2011 Steven Armstrong (steven-cdist at armstrong.cc)
#
@@ -11,32 +11,32 @@
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see .
#
-case "$("${__explorer}/os")"
+case $("${__explorer:?}/os")
in
- netbsd)
- postgres_user='pgsql'
- ;;
- openbsd)
- postgres_user='_postgresql'
- ;;
- *)
- postgres_user='postgres'
- ;;
+ (netbsd)
+ postgres_user='pgsql'
+ ;;
+ (openbsd)
+ postgres_user='_postgresql'
+ ;;
+ (*)
+ postgres_user='postgres'
+ ;;
esac
-name="$__object_id"
+rolename=${__object_id:?}
-if test -n "$(su - "$postgres_user" -c "psql postgres -twAc \"SELECT 1 FROM pg_roles WHERE rolname='$name'\"")"
+if test -n "$(su - "${postgres_user}" -c "psql postgres -twAc \"SELECT 1 FROM pg_roles WHERE rolname='${rolename}'\"")"
then
- echo 'present'
+ echo 'present'
else
- echo 'absent'
+ echo 'absent'
fi
diff --git a/cdist/conf/type/__postgres_role/gencode-remote b/cdist/conf/type/__postgres_role/gencode-remote
index 282294c9..4fb761ed 100755
--- a/cdist/conf/type/__postgres_role/gencode-remote
+++ b/cdist/conf/type/__postgres_role/gencode-remote
@@ -11,55 +11,61 @@
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see .
#
-case "$(cat "${__global}/explorer/os")"
+case $(cat "${__global:?}/explorer/os")
in
- netbsd)
- postgres_user='pgsql'
- ;;
- openbsd)
- postgres_user='_postgresql'
- ;;
- *)
- postgres_user='postgres'
- ;;
+ (netbsd)
+ postgres_user='pgsql'
+ ;;
+ (openbsd)
+ postgres_user='_postgresql'
+ ;;
+ (*)
+ postgres_user='postgres'
+ ;;
esac
-name="$__object_id"
-state_is="$(cat "$__object/explorer/state")"
-state_should="$(cat "$__object/parameter/state")"
+rolename=${__object_id:?}
+state_is=$(cat "${__object:?}/explorer/state")
+state_should=$(cat "${__object:?}/parameter/state")
-[ "$state_is" = "$state_should" ] && exit 0
+if test "${state_is}" = "${state_should}"
+then
+ exit 0
+fi
-case "$state_should" in
- present)
- if [ -f "$__object/parameter/password" ]; then
- password="$(cat "$__object/parameter/password")"
- fi
- booleans=""
- for boolean in login createdb createrole superuser; do
- if [ ! -f "$__object/parameter/$boolean" ]; then
- boolean="no${boolean}"
- fi
- upper=$(echo $boolean | tr '[:lower:]' '[:upper:]')
- booleans="$booleans $upper"
- done
+case ${state_should}
+in
+ (present)
+ if test -f "${__object:?}/parameter/password"
+ then
+ password=$(cat "${__object:?}/parameter/password")
+ fi
+ booleans=
+ for boolean in login createdb createrole superuser
+ do
+ if test ! -f "${__object:?}/parameter/${boolean}"
+ then
+ boolean="no${boolean}"
+ fi
+ booleans="${booleans} $(echo ${boolean} | tr '[:lower:]' '[:upper:]')"
+ done
- [ -n "$password" ] && password="PASSWORD '$password'"
- cat << EOF
-su - '$postgres_user' -c "psql postgres -wc \"CREATE ROLE \\\\\"$name\\\\\" WITH $password $booleans;\""
+ [ -n "${password}" ] && password="PASSWORD '${password}'"
+ cat << EOF
+su - '${postgres_user}' -c "psql postgres -wc 'CREATE ROLE \\"${rolename}\\" WITH ${password} ${booleans};'"
EOF
- ;;
- absent)
- cat << EOF
-su - '$postgres_user' -c "dropuser \"$name\""
+ ;;
+ (absent)
+ cat << EOF
+su - '${postgres_user}' -c "dropuser '${rolename}'"
EOF
- ;;
+ ;;
esac