[type/__postgres_role] Lint

This commit is contained in:
Dennis Camera 2020-12-15 18:40:39 +01:00
parent 71f2283117
commit 932e2496ed
2 changed files with 58 additions and 52 deletions

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/sh -e
# #
# 2011 Steven Armstrong (steven-cdist at armstrong.cc) # 2011 Steven Armstrong (steven-cdist at armstrong.cc)
# #
@ -18,23 +18,23 @@
# along with cdist. If not, see <http://www.gnu.org/licenses/>. # along with cdist. If not, see <http://www.gnu.org/licenses/>.
# #
case "$("${__explorer}/os")" case $("${__explorer:?}/os")
in in
netbsd) (netbsd)
postgres_user='pgsql' postgres_user='pgsql'
;; ;;
openbsd) (openbsd)
postgres_user='_postgresql' postgres_user='_postgresql'
;; ;;
*) (*)
postgres_user='postgres' postgres_user='postgres'
;; ;;
esac 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 then
echo 'present' echo 'present'
else else

View File

@ -18,48 +18,54 @@
# along with cdist. If not, see <http://www.gnu.org/licenses/>. # along with cdist. If not, see <http://www.gnu.org/licenses/>.
# #
case "$(cat "${__global}/explorer/os")" case $(cat "${__global:?}/explorer/os")
in in
netbsd) (netbsd)
postgres_user='pgsql' postgres_user='pgsql'
;; ;;
openbsd) (openbsd)
postgres_user='_postgresql' postgres_user='_postgresql'
;; ;;
*) (*)
postgres_user='postgres' postgres_user='postgres'
;; ;;
esac esac
name="$__object_id" rolename=${__object_id:?}
state_is="$(cat "$__object/explorer/state")" state_is=$(cat "${__object:?}/explorer/state")
state_should="$(cat "$__object/parameter/state")" state_should=$(cat "${__object:?}/parameter/state")
[ "$state_is" = "$state_should" ] && exit 0 if test "${state_is}" = "${state_should}"
then
case "$state_should" in exit 0
present)
if [ -f "$__object/parameter/password" ]; then
password="$(cat "$__object/parameter/password")"
fi fi
booleans=""
for boolean in login createdb createrole superuser; do case ${state_should}
if [ ! -f "$__object/parameter/$boolean" ]; then 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}" boolean="no${boolean}"
fi fi
upper=$(echo $boolean | tr '[:lower:]' '[:upper:]') booleans="${booleans} $(echo ${boolean} | tr '[:lower:]' '[:upper:]')"
booleans="$booleans $upper"
done done
[ -n "$password" ] && password="PASSWORD '$password'" [ -n "${password}" ] && password="PASSWORD '${password}'"
cat << EOF cat << EOF
su - '$postgres_user' -c "psql postgres -wc \"CREATE ROLE \\\\\"$name\\\\\" WITH $password $booleans;\"" su - '${postgres_user}' -c "psql postgres -wc 'CREATE ROLE \\"${rolename}\\" WITH ${password} ${booleans};'"
EOF EOF
;; ;;
absent) (absent)
cat << EOF cat << EOF
su - '$postgres_user' -c "dropuser \"$name\"" su - '${postgres_user}' -c "dropuser '${rolename}'"
EOF EOF
;; ;;
esac esac