50 lines
1.8 KiB
Bash
Executable File
50 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
log-entrypoint "Assemble addons path from ${ODOO_ADDONS_PATH}..."
|
|
|
|
# Add extra addons path to addons path
|
|
if [[ -d '/mnt/extra-addons' ]]; then
|
|
log-entrypoint 'Prepend /mnt/extra-addons to addons path.'
|
|
odoo_addons_path="/mnt/extra-addons,$ODOO_ADDONS_PATH"
|
|
fi
|
|
|
|
# Add git path to addons path
|
|
if [[ -d '/var/lib/odoo/git' ]]; then
|
|
log-entrypoint 'Prepend /var/lib/odoo/git to addons path.'
|
|
odoo_addons_path="/var/lib/odoo/git,$odoo_addons_path"
|
|
fi
|
|
|
|
# Add enterprise path to addons path
|
|
odoo_enterprise_path=${ODOO_ENTERPRISE_PATH:="/var/lib/odoo/enterprise"}
|
|
if [[ -d "$odoo_enterprise_path" ]]; then
|
|
log-entrypoint "Prepend $odoo_enterprise_path to addons path."
|
|
odoo_addons_path=$(echo "${odoo_enterprise_path},${odoo_addons_path}")
|
|
fi
|
|
|
|
# Add test addons dir to addons path
|
|
if [[ -n "$TEST_ADDONS_DIR" ]]; then
|
|
log-entrypoint "Append $TEST_ADDONS_DIR to addons path."
|
|
odoo_addons_path=$(echo "${odoo_addons_path},${TEST_ADDONS_DIR}")
|
|
fi
|
|
|
|
if [[ -n "$odoo_addons_path" ]]; then
|
|
log-entrypoint "Resolve addons path for Odoo ${ODOO_VERSION}..."
|
|
|
|
# Search for module manifest files, get module paths, then parent directories
|
|
odoo_addons_path=$(echo "$odoo_addons_path" | tr ',' '\n' | sort -u | while read -r dir; do
|
|
if [[ -d "$dir" ]]; then
|
|
rg -l -i --files-with-matches "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" --glob="*__manifest__.py" "$dir"
|
|
fi
|
|
done | while read -r manifest; do
|
|
dirname "$manifest"
|
|
done | sort -u | uniq | while read -r module_dir; do
|
|
dirname "$module_dir"
|
|
done | sort -u | uniq | tr '\n' ',' | sed 's/,$//')
|
|
|
|
# Combine predefined addons path and odoo addons path
|
|
addons_path=$(echo "${odoo_addons_path},${ADDONS_PATH}")
|
|
fi
|
|
|
|
export ADDONS_PATH="$addons_path"
|