summaryrefslogtreecommitdiffstats
path: root/share/postgresql-setup/library.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'share/postgresql-setup/library.sh.in')
-rw-r--r--share/postgresql-setup/library.sh.in139
1 files changed, 0 insertions, 139 deletions
diff --git a/share/postgresql-setup/library.sh.in b/share/postgresql-setup/library.sh.in
deleted file mode 100644
index 9835029..0000000
--- a/share/postgresql-setup/library.sh.in
+++ /dev/null
@@ -1,139 +0,0 @@
-die() { echo >&2 $"FATAL: $@" ; exit 1 ; }
-error() { echo >&2 $"ERROR: $@" ; }
-error_q() { echo >&2 $" $@" ; }
-warn() { echo >&2 $"WARNING: $@" ; }
-warn_q() { echo >&2 $" $@" ; }
-info() { echo >&2 $" * $@" ; }
-info_q() { echo >&2 $" $@" ; }
-debug() { test "$option_debug" = "1" && echo >&2 $"DEBUG: $@"; }
-
-
-set_var()
-{
- eval "$1=\"$2\""
-}
-
-
-root_prereq()
-{
- test "$(id -u)" -eq 0 || die "$0 requires root access for this action"
-}
-
-
-read_config_file()
-{
- local key="" val=""
-
- test -r "$1" || die "can't read file '$1'"
-
- for i in $2; do
- eval "unset __pg_conf_$i"
- done
-
- # No easy (and secure) way to read configuration files from bash script,
- # sorry.
- while read key val; do
- [[ $key =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]] || return 1
-
- case " $2 " in
- *" $key "*)
- ;;
- *)
- warn "config file '$1': unknown key '$key'"
- continue
- ;;
- esac
-
- # Strip double quotes
- case "$val" in
- \"*\")
- val=${val##\"}
- val=${val%%\"}
- ;;
- esac
-
- # Make it reasonably safe. Keep dolar-sign escaped.
- eval "__pg_conf_$key=\$val"
-
- done < <(grep -v -e "^$" -e "^#" < "$1")
-}
-
-
-parse_upgrade_setup()
-{
- local action="$1"
- local expected_id="$2"
- local id temp_major temp_engine temp_data_default temp_description
-
- local upgrade_confdir="@sysconfdir@/@NAME_BINARYBASE@-setup/upgrade"
-
- debug "using 'upgrade' confdir $upgrade_confdir"
- test -d "$upgrade_confdir" || die "can't read confdir $upgrade_confdir"
-
- local my_vars="id comment data_default engine description major scls \
- redhat_sockets_hack pghost_override package"
- while read conffile
- do
- read_config_file "$conffile" "$my_vars"
-
- if test help = "$action"; then
- echo "$__pg_conf_id - $__pg_conf_description"
- elif test list = "$action"; then
- echo "$__pg_conf_id $__pg_conf_major"
- elif test config = "$action"; then
- test "$__pg_conf_id" = "$expected_id" || continue
- debug "reading config $conffile"
- for i in $my_vars; do
- set_var "upgradefrom_$i" "\$__pg_conf_$i"
-
- local cm="config file '$conffile'"
- # 'scls' and 'redhat_sockets_hack' are used to adjust
- # environment and could be bash-injected.
- case "$i" in
- scls)
- test -z "$upgrade_from_scls" \
- || [[ $upgrade_from_scls =~ ^[-a-zA-Z0-9_\ ]+$ ]] \
- || die "$cm: bad '$i' value '$upgrade_from_scls'"
- ;;
- redhat_sockets_hack)
- case "$upgradefrom_redhat_sockets_hack" in
- yes|no|'')
- ;;
- *)
- die "$cm: bad '$i' value"
- ;;
- esac
- ;;
- esac
- done
- return 0
- fi
- done < <(find "$upgrade_confdir" -maxdepth 1 -type f -name '*.conf')
-
- case "$action" in
- help|list)
- return 0
- ;;
- esac
- return 1
-}
-
-
-# run_cmd_as_dbadmin COMMAND STDOUT STDERR
-run_cmd_as_dbadmin()
-{
- # Convenient tool-aliases
- local SU_POSTGRES="@SU_POSTGRES@"
-
- local cmd="@SCL_SOURCE@$1"
- local stdout="$2" stderr="$3"
-
- # don't print additional spaces
- set -- $cmd
- debug "running command under postgres user: $@"
- (
- test -n "$stdout" && exec >>"$stdout"
- test -n "$stderr" && exec 2>>"$stderr"
- $SU_POSTGRES -c "$cmd" < /dev/null
- )
-}