docker-odoo/10.0/entrypoint.sh
Simon Lejeune 017dd1b113 [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
2016-11-05 18:17:05 +01:00

48 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -e
# set the postgres database host, port, user and password
: ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}}
: ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}}
: ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}}
: ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}}
# 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)
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
-- | odoo)
shift
exec odoo "${DB_ARGS[@]}" "$@"
;;
-*)
exec odoo "${DB_ARGS[@]}" "$@"
;;
*)
exec "$@"
esac
exit 1