docker-odoo/10.0/entrypoint.sh

48 lines
1.1 KiB
Bash
Raw Normal View History

#!/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