62 lines
1.4 KiB

#!/bin/bash
## XXXvlab: this hook should go into a generic odoo image
## XXXvlab: should get location of code
CONFIG=$SERVICE_CONFIGSTORE/etc/odoo-server.conf
. lib/common
set -e
PASSWORD="$(relation-get password)"
USER="$(relation-get user)"
DBNAME="$(relation-get dbname)"
ADMIN_PASSWORD=$(relation-base-compose-get admin-password 2>/dev/null) || {
if [ -e "$CONFIG" ]; then
ADMIN_PASSWORD=$(grep ^admin_passwd "$CONFIG" | sed -r 's/^admin_passwd\s+=\s+(.+)$/\1/g')
fi
if [ -z "$ADMIN_PASSWORD" ]; then
info "Generating odoo admin password"
ADMIN_PASSWORD=$(gen_password)
fi
}
control=$(echo -en "$USER\0$DBNAME\0$PASSWORD\0$ADMIN_PASSWORD" | md5_compat)
config-add "\
services:
$MASTER_BASE_SERVICE_NAME:
command:
- '-i base,l10n_fr'
- '--database=$DBNAME'
## All this is to please technativa image, but is quite redundant
environment:
PGHOST: $MASTER_TARGET_SERVICE_NAME
PGDATABASE: $DBNAME
PGPASSWORD: $PASSWORD
PGUSER: $USER
#DBFILTER: $DBNAME
ADMIN_PASSWORD: $ADMIN_PASSWORD
"
[ "$control" == "$(relation-get control 2>/dev/null)" ] && exit 0
file_put $CONFIG <<EOF
[options]
admin_passwd = $ADMIN_PASSWORD
db_user = $USER
db_password = $PASSWORD
EOF
odoo_uid=$(get_odoo_uid)
chown "$odoo_uid" "$CONFIG" && chmod 600 "$CONFIG"
relation-set control "$control"
info "Configured $SERVICE_NAME code for $TARGET_SERVICE_NAME access."