#!/bin/bash

# Add extra addons path to addons path
if [ -d "/mnt/extra-addons" ]; then
    ODOO_ADDONS_PATH="/mnt/extra-addons,$ODOO_ADDONS_PATH"
fi

# Add enterprise path to addons path
if [ -d "/opt/odoo/enterprise" ]; then
    ODOO_ADDONS_PATH="/opt/odoo/enterprise,$ODOO_ADDONS_PATH"
fi

# Add git path to addons path
if [ -n "$ADDONS_GIT_REPOS" ] && [ -d "/var/lib/odoo/git" ]; then
    ODOO_ADDONS_PATH="/var/lib/odoo/git,$ODOO_ADDONS_PATH"
fi

# Add test addons dir to addons path
if [ -n "$TEST_ADDONS_DIR" ]; then
    ODOO_ADDONS_PATH=$(echo "${ODOO_ADDONS_PATH},${TEST_ADDONS_DIR}")
fi

if [ -n "$ODOO_ADDONS_PATH" ]; then
    log-entrypoint "Resolve addons path: $ODOO_ADDONS_PATH"

    # Search for module manifest files and return list of module paths
    ODOO_ADDONS_PATH=$(echo "$ODOO_ADDONS_PATH" | tr "," "\n" | xargs -I {} find {} -type f -name "__manifest__.py" | xargs grep -l -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})" |  xargs -r dirname | sort -u | tr "\n" "," | sed 's/,$//')

    # Set parent folder of module paths as new addons path
    ODOO_ADDONS_PATH=$(echo "$ODOO_ADDONS_PATH" | tr "," "\n" | xargs -I {} dirname {} | sort -u | tr "\n" "," | sed 's/,$//')
fi

# Combine predefined addons path and odoo addons path
if [ -n "$ODOO_ADDONS_PATH" ]; then
    ADDONS_PATH=$(echo "${ODOO_ADDONS_PATH},${ADDONS_PATH}")
fi

export ADDONS_PATH
