Skip to content

Commit 69f31d8

Browse files
committed
fix(odoo): improve version regex matching and update documentation
1 parent 03059c6 commit 69f31d8

File tree

3 files changed

+17
-21
lines changed

3 files changed

+17
-21
lines changed

images/odoo/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ services:
117117
GIT_AUTHOR_EMAIL: [email protected]
118118
GIT_SSH_PUBLIC_KEY: "ssh-ed25519 BBBBC3NzaC1lZDI1NTE5BBBBIDR9Ibi0mATjCyx1EYg594oFkY0rghtgo+pnFHOvAcym [email protected]"
119119
GIT_SSH_PRIVATE_KEY: "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLQpiM0JsYm5OemFDMXJaWGt0ZGpFQUFBQUFCRzV2Ym1VQUFBQUVibTl1WlFBQUFBQUFBQUFCQUFBQU13QUFBQXR6YzJndFpXClF5TlRVeE9RQUFBQ0EwZlNHNHRKZ0U0d3NzZFJHSU9mZUtCWkdOSzRJYllLUHFaeFJ6cndITXBnQUFBS2k1WkJhRnVXUVcKaFFBQUFBdHpjMmd0WldReU5UVXhPUUFBQUNBMGZTRzR0SmdFNHdzc2RSR0lPZmVLQlpTks0SWJZS1BxWnhSenJ3SE1wZwowQkFnTT0KLS0tLS1FTkQgT1BFTlNTSCBQUklWQVRFIEtFWS0tLS0tCg=="
120-
SSH_ID_ALGORITHM: id_ed25519
120+
SSH_ID_ALGORITHM: id_ed25519
121121
GITHUB_USERNAME: bot-mintsys
122122
GITHUB_PAT: *****
123123
GITLAB_URL: https://gitlab.com
@@ -400,7 +400,7 @@ The entrypoint script searches for module folders in the addons path and creates
400400
- `/var/lib/odoo/git` Reserved location for git repos.
401401
- `$TEST_ADDONS_DIR` Variable location for module testing.
402402
- `/opt/odoo/addons` Reserved location for Odoo community modules.
403-
- `ODOO_ENTERPRISE_PATH` Path to Odoo Enterprise modules. Default is `/var/lib/odoo/enterprise`.
403+
- `ODOO_ENTERPRISE_PATH` Odoo Enterprise is cloned to this folder. Default is `/var/lib/odoo/enterprise`.
404404

405405
### Initialize
406406

images/odoo/bin/set-addons-path

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if [[ -n "$odoo_addons_path" ]]; then
2727
# Search for module manifest files, get module paths, then parent directories
2828
odoo_addons_path=$(echo "$odoo_addons_path" | tr ',' '\n' | sort -u | while read -r dir; do
2929
if [[ -d "$dir" ]]; then
30-
rg -l -i --files-with-matches "version.+\"${ODOO_VERSION}" --glob="*__manifest__.py" "$dir"
30+
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"
3131
fi
3232
done | while read -r manifest; do
3333
dirname "$manifest"
@@ -39,11 +39,4 @@ if [[ -n "$odoo_addons_path" ]]; then
3939
addons_path=$(echo "${odoo_addons_path},${ADDONS_PATH}")
4040
fi
4141

42-
# Add enterprise path to addons path
43-
odoo_enterprise_path=${ODOO_ENTERPRISE_PATH:="/var/lib/odoo/enterprise"}
44-
if [[ -d "$odoo_enterprise_path" ]]; then
45-
log-entrypoint "Prepend $odoo_enterprise_path to addons path."
46-
addons_path="$odoo_enterprise_path,$addons_path"
47-
fi
48-
4942
export ADDONS_PATH="$addons_path"

task

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -581,10 +581,10 @@ get-modules() {
581581

582582
local modules
583583
if [[ "$option" == "dirname" ]]; then
584-
modules=$(echo "$1" | 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/,$//')
584+
modules=$(echo "$1" | tr "," "\n" | xargs -I {} find {} -type f -name "__manifest__.py" | xargs grep -l -iE "version.*([0-9]+\.[0-9]+(\.[0-9]+)?|${ODOO_VERSION}(\.[0-9]+)*)" | xargs -r dirname | sort -u | tr "\n" "," | sed 's/,$//')
585585
fi
586586
if [[ "$option" == "basename" ]]; then
587-
modules=$(echo "$1" | tr "," "\n" | xargs -I {} find {} -type f -name "__manifest__.py" | xargs grep -l -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})" | xargs -r dirname | xargs -r -I {} basename {} | sort -u | tr "\n" "," | sed 's/,$//')
587+
modules=$(echo "$1" | tr "," "\n" | xargs -I {} find {} -type f -name "__manifest__.py" | xargs grep -l -iE "version.*([0-9]+\.[0-9]+(\.[0-9]+)?|${ODOO_VERSION}(\.[0-9]+)*)" | xargs -r dirname | xargs -r -I {} basename {} | sort -u | tr "\n" "," | sed 's/,$//')
588588
fi
589589
echo "$modules"
590590
}
@@ -812,17 +812,20 @@ test-image() {
812812
local server_tools_git_ref=$(curl -s "https://api.github.com/repos/OCA/server-tools/branches/$ODOO_VERSION" | grep '"sha":' | head -n 1 | awk -F '"' '{print $4}')
813813
export ADDONS_GIT_REPOS="https://github.com/OCA/server-tools.git#${ODOO_VERSION}#${server_tools_git_ref}"
814814
# This will remove all SSH keys at the end
815-
# ./images/odoo/bin/clone-git-addons
815+
./images/odoo/bin/clone-git-addons
816816
rm -rf "$LOCAL_PATH/github.com" # Cleanup for next run
817817

818+
ODOO_VERSION="18.0" # Example value
819+
818820
echo -e "\033[38;5;214mTEST\033[0m: Check addons path regex with version: $ODOO_VERSION"
819-
echo "'version': '1.0'" | grep -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})"
820-
echo "'version': '1.1'" | grep -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})"
821-
echo "'version': '2.5'" | grep -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})"
822-
echo "'version': '13.0.1.0.0'" | grep -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})" || echo "Must not match"
823-
echo "'version': '14.0.2.1.1'" | grep -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})" || echo "Must not match"
824-
echo "'version': '${ODOO_VERSION}.0.0.0'" | grep -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})"
825-
echo '"Version": "1.0"' | grep -iE "version.*['\"]([0-9]+\.[0-9]+['\"]|${ODOO_VERSION})"
821+
echo "'version': '1.0'" | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✓ Matched" || echo "✗ Match missing"
822+
echo "'version': '1.1'" | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✓ Matched" || echo "✗ Match missing"
823+
echo "'version': '2.5'" | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✓ Matched" || echo "✗ Match missing"
824+
echo "'version': '2.0.0'" | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✓ Matched" || echo "✗ Match missing"
825+
echo "'version': '13.0.1.0.0'" | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✗ No match (expected)" || echo "✓ No match is ok"
826+
echo "'version': '14.0.2.1.1'" | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✗ No match (expected)" || echo "✓ No match is ok"
827+
echo "'version': '${ODOO_VERSION}.0.0.0'" | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✓ Matched" || echo "✗ Match missing"
828+
echo '"Version": "1.0"' | grep -iE "version.*([0-9]+\.[0-9]+|[0-9]+\.[0-9]+\.[0-9]+|${ODOO_VERSION}(\.[0-9]+)+)" && echo "✓ Must match" || echo "✗ Match missing"
826829

827830
echo -e "\033[38;5;214mTEST\033[0m: Install python package."
828831
export PYTHON_INSTALL="prometheus-client,pyjwt"
@@ -853,7 +856,7 @@ EOF
853856
uv pip list
854857

855858
echo -e "\033[38;5;214mTEST\033[0m: Run set-addons-path"
856-
export TEST_ADDONS_DIR="./templates"
859+
export TEST_ADDONS_DIR="./templates,./themes,./enterprise,/gugus"
857860
export ODOO_VERSION="18.0"
858861
source ./images/odoo/bin/set-addons-path
859862
echo $ADDONS_PATH | grep "./templates"

0 commit comments

Comments
 (0)