diff --git a/.gitignore b/.gitignore index 68bb5bd5..bf3f691e 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ dist origin.dump filestore upgraded.dump -thirdparty +thirdparty/* +!thirdparty/.gitkeep .idea/ .obsidian \ No newline at end of file diff --git a/build/entrypoint.sh b/build/entrypoint.sh index 8be70c90..92913048 100755 --- a/build/entrypoint.sh +++ b/build/entrypoint.sh @@ -22,11 +22,20 @@ entrypoint_log() { fi } -# Search for module manifest files and return list of module paths -ODOO_MODULE_PATH=$(echo "$ODOO_ADDONS_PATH" | tr "," "\n" | xargs -I {} find {} -type f -name "__manifest__.py" | xargs dirname | sort -u | tr "\n" ",") +set_odoo_addons_path() { + if [ -n "$ODOO_ADDONS_PATH" ]; then -# Set parent folder of module paths as new addons path -ODOO_ADDONS_PATH=$(echo "$ODOO_MODULE_PATH" | tr "," "\n" | xargs -I {} dirname {} | sort -u | tr "\n" "," | sed 's/,$//') + entrypoint_log "$ME: Update ODOO_ADDONS_PATH env var" + + # Search for module manifest files and return list of module paths + ODOO_MODULE_PATH=$(echo "$ODOO_ADDONS_PATH" | tr "," "\n" | xargs -I {} find {} -type f -name "__manifest__.py" | xargs dirname | sort -u | tr "\n" ",") + + # Set parent folder of module paths as new addons path + ODOO_ADDONS_PATH=$(echo "$ODOO_MODULE_PATH" | tr "," "\n" | xargs -I {} dirname {} | sort -u | tr "\n" "," | sed 's/,$//') + fi +} + +set_odoo_addons_path auto_envsubst() { local TEMPLATE_FILE="${ODOO_ENVSUBST_TEMPLATE_FILE:-/etc/odoo/odoo.conf.template}" @@ -43,11 +52,11 @@ auto_envsubst() { auto_envsubst -echo "List python packages:" +entrypoint_log "$ME: List python packages:" pip list -echo "Running Odoo as user: $USER" +entrypoint_log "$ME: Running Odoo as user: $USER" # Set the postgres database host, port, user and password according to the environment # and pass them as arguments to the odoo process if not present in the config file diff --git a/docker-compose.yml b/docker-compose.yml index 93c8afe1..2bfdb006 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,8 +14,7 @@ services: USER: odoo PASSWORD: odoo PORT: ${POSTGRES_PORT} - # ODOO_ADDONS_PATH: "${DOCKER_ADDONS_PATH}" - ODOO_ADDONS_PATH: /mnt/addons/,/mnt/oca/,/mnt/enterprise,/mnt/themes/ + ODOO_ADDONS_PATH: /mnt/addons/,/mnt/oca/,/mnt/enterprise,/mnt/themes/,/mnt/thirdparty ports: - "127.0.0.1:${ODOO_PORT}:${ODOO_PORT}" volumes: @@ -24,6 +23,7 @@ services: - ./oca:/mnt/oca - ./enterprise:/mnt/enterprise - ./themes:/mnt/themes + - ./thirdparty:/mnt/thirdparty admin: container_name: admin image: dpage/pgadmin4:6 diff --git a/enterprise b/enterprise index aa2bedd0..47cc8bbe 160000 --- a/enterprise +++ b/enterprise @@ -1 +1 @@ -Subproject commit aa2bedd0eeb9728528459b49f2c6c463cc690881 +Subproject commit 47cc8bbed4f326d2eff14f072f62259a82a12d08 diff --git a/odoo b/odoo index 51bc2f8c..391a4276 160000 --- a/odoo +++ b/odoo @@ -1 +1 @@ -Subproject commit 51bc2f8c68e8a23442ff163bd4460d3ead400467 +Subproject commit 391a427620b6aec690481fe7c7d0b0326b95ee8c diff --git a/task b/task index 2267dd2c..6ebfdfe3 100755 --- a/task +++ b/task @@ -486,9 +486,14 @@ function install-requirements() { FILE_NAME=$(basename "$FILE_PATH") if [[ "$FILE_NAME" != "requirements.txt" ]]; then echo "\$1 must point to requirements.txt file."; exit; fi - activate-venv - echo "Installing python packages from $FILE_PATH ..." - pip install -r "$FILE_PATH" + if [ "$( docker container inspect -f '{{.State.Running}}' odoo )" == "true" ]; then + echo "Installing python packages in Docker container ..." + docker exec -u root odoo python -m pip install -r "/mnt/$FILE_PATH" + else + activate-venv + echo "Installing python packages in virutal env ..." + pip install -r "$FILE_PATH" + fi } function test-module() { @@ -1070,7 +1075,7 @@ function update-docs() { function visualize-dependencies() { if test -z "$1"; then echo "\$1 is empty."; exit; fi - + MODULE_DIR="$1" OUTPUT_FILE="tmp/module_dependencies.mmd" mkdir -p tmp @@ -1081,10 +1086,9 @@ function visualize-dependencies() { MODULE_NAME=$(basename "$MODULE_PATH") MANIFEST_FILE="$MODULE_PATH/__manifest__.py" if [[ -f $MANIFEST_FILE ]]; then - DEPENDENCIES=$(grep -Po '(?<="depends": \[)[^\]]*' "$MANIFEST_FILE" | tr -d '"') + DEPENDENCIES=$(grep -Po '(?<="depends": \[)[^\]]*' "$MANIFEST_FILE" | tr -d '"[] ') if [[ -n "$DEPENDENCIES" ]]; then - DEPENDENCIES=$(echo "$DEPENDENCIES" | tr -d '[:space:]' | tr ',' '\n') - for DEPENDENCY in "$DEPENDENCIES"; do + for DEPENDENCY in $(echo "$DEPENDENCIES" | tr ',' '\n'); do echo " $MODULE_NAME --> $DEPENDENCY" >> "$OUTPUT_FILE" done fi diff --git a/themes b/themes index e69120f1..1d0f0fc2 160000 --- a/themes +++ b/themes @@ -1 +1 @@ -Subproject commit e69120f1490f9cc253366c030baea102fff9cf8e +Subproject commit 1d0f0fc2caacd7f69b303fea6f5f0630db377f4b diff --git a/thirdparty/.gitkeep b/thirdparty/.gitkeep new file mode 100644 index 00000000..e69de29b