Files
Odoo-Build/images/odoo/bin/set-addons-path
T

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"