[FIX] Odoo 8.0-10.0: override of config file pg credentials

We tried to remove usage of environment variables to set the connection
parameters to the postgres database but we omit the case when they're
set in the config file

related to a3d207f2d4

Fixes #80
This commit is contained in:
Simon Lejeune 2016-11-05 18:17:05 +01:00
parent bb4cc45844
commit 017dd1b113

View File

@ -7,9 +7,31 @@ set -e
: ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}} : ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}}
: ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}} : ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}}
: ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}} : ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}}
# pass them as arguments to the odoo process
# pass them as arguments to the odoo process if not present in the config file
DB_ARGS=("--db_user" $USER "--db_password" $PASSWORD "--db_host" $HOST "--db_port" $PORT) DB_ARGS=("--db_user" $USER "--db_password" $PASSWORD "--db_host" $HOST "--db_port" $PORT)
function is_in_config_file() {
if [[ ! -f ${ODOO_RC} ]] ; then
return 1
fi
while read -r line ; do
if [[ ${line} == ${1}* ]] ; then
return 0
fi
done < "${ODOO_RC}"
return 1
}
for i in "${!DB_ARGS[@]}" ; do
# postgres credentials begins by `--` when used as odoo argument but it's not the
# case when they're set in the config file
if [[ "${DB_ARGS[$i]}" == --* ]] && is_in_config_file "${DB_ARGS[$i]:2}" ; then
unset "DB_ARGS[$i]" ; unset "DB_ARGS[$i+1]"
fi
done
case "$1" in case "$1" in
-- | odoo) -- | odoo)
shift shift