feat(config): replace ODOO_INIT_DEMO_DATA with WITHOUT_DEMO and refactor ir.config_parameter handling

* **BREAKING**: Replaced `ODOO_INIT_DEMO_DATA` with `WITHOUT_DEMO` to align with Odoo's native config option
* Migrate SSH key and other parameters from individual env vars to `IR_CONFIG_PARAMETER`
* Update template-odoo-rc to dynamically build `IR_CONFIG_PARAMETER` from env vars
* Adjust task script logic to use `WITHOUT_DEMO` consistently
* Update README and CHANGELOG to reflect breaking change and new usage patterns
This commit is contained in:
Janik von Rotz committed 2025-10-21 17:31:49 +02:00
1 parent 5509aaeede
commit 78a127e598
4 files changed
+47 -25

No files matched your search

+2
View File
@@ -14,6 +14,8 @@ All notable changes to this project will be documented in this file. The format
* Grouped the help table entries.
* Use `odoo-module-migrator` instead of `upgrade_code` command.
* Renamed `upgrade-module` to `migrate-module`.
* **BREAKING**: Replaced `ODOO_INIT_DEMO_DATA` to `WITHOUT_DEMO`.
* Env var `IR_CONFIG_PARAMETER` to append to ir config section.
## 2025-09-12
+1 -1
View File
@@ -169,7 +169,7 @@ The paths will be appended to the Odoo config.
In your `.env` file set this env var:
```bash
ODOO_INIT_DEMO_DATA=False
WITHOUT_DEMO=True
```
### Set Odoo database name
+1 -10
View File
@@ -16,13 +16,4 @@ limit_time_real = 600
modules_auto_install_disabled = $MODULE_AUTO_INSTALL_DISABLED
[ir.config_parameter]
$GIT_SSH_PUBLIC_KEY_PARAM
$GIT_SSH_PRIVATE_KEY_PARAM
$BASE_URL_WEBSITE_PARAM
$BASE_URL_APP_PARAM
$UPLOADCARE_PUBLIC_KEY_PARAM
$UPLOADCARE_SECRET_KEY_PARAM
$KEYCLOAK_BASE_URL_PARAM
$KEYCLOAK_CLIENT_ID_PARAM
$KEYCLOAK_CLIENT_SECRET_PARAM
$KEYCLOAK_REALM_PARAM
$IR_CONFIG_PARAMETER
+43 -14
View File
@@ -213,7 +213,7 @@ export PYTHONPATH="$PWD/odoo"
ODOO_VERSION=$(echo "$ODOO_REVISION" | cut -d'.' -f1-2)
ODOO_DATABASE=${ODOO_DATABASE:="$ODOO_VERSION"}
ODOO_INIT_DEMO_DATA=${ODOO_INIT_DEMO_DATA:="True"}
WITHOUT_DEMO=${WITHOUT_DEMO:="False"}
ODOO_LANGUAGE=${ODOO_LANGUAGE:="de_CH"}
ODOO_PORT=${ODOO_PORT:="8069"}
POSTGRES_IMAGE=${POSTGRES_IMAGE:="pgvector/pgvector:pg16-trixie"}
@@ -249,7 +249,7 @@ else
OS_OPEN="xdg-open"
fi
if [ "$ODOO_INIT_DEMO_DATA" = "False" ]; then
if [ "$WITHOUT_DEMO" = "True" ]; then
ODOO_PARAM="--without-demo=all"
fi
@@ -379,21 +379,50 @@ function template-odoo-rc() {
export $VAR
done
# Deode SSH private key
IR_CONFIG_PARAMETER=${IR_CONFIG_PARAMETER:-""}
if [ -n "$GIT_SSH_PRIVATE_KEY" ]; then
GIT_SSH_PRIVATE_KEY=$(echo -e "$GIT_SSH_PRIVATE_KEY" | base64 -w0)
IR_CONFIG_PARAMETER+=$'\n'"git.ssh_private_key = \"$GIT_SSH_PRIVATE_KEY\""
fi
export BASE_URL_WEBSITE_PARAM=$([ -n "$BASE_URL_WEBSITE" ] && echo "base_url_website = $BASE_URL_WEBSITE")
export BASE_URL_APP_PARAM=$([ -n "$BASE_URL_APP" ] && echo "base_url_app = $BASE_URL_APP")
export GIT_SSH_PUBLIC_KEY_PARAM=$([ -n "$GIT_SSH_PUBLIC_KEY" ] && echo "git.ssh.public.key = \"$GIT_SSH_PUBLIC_KEY\"")
export GIT_SSH_PRIVATE_KEY_PARAM=$([ -n "$GIT_SSH_PRIVATE_KEY" ] && echo "git.ssh.private.key = \"$GIT_SSH_PRIVATE_KEY\"")
export UPLOADCARE_PUBLIC_KEY_PARAM=$([ -n "$UPLOADCARE_PUBLIC_KEY" ] && echo "uploadcare.public_key = $UPLOADCARE_PUBLIC_KEY")
export UPLOADCARE_SECRET_KEY_PARAM=$([ -n "$UPLOADCARE_SECRET_KEY" ] && echo "uploadcare.secret_key = $UPLOADCARE_SECRET_KEY")
export KEYCLOAK_BASE_URL_PARAM=$([ -n "$KEYCLOAK_BASE_URL" ] && echo "keycloak.base_url = $KEYCLOAK_BASE_URL")
export KEYCLOAK_CLIENT_ID_PARAM=$([ -n "$KEYCLOAK_CLIENT_ID" ] && echo "keycloak.client_id = $KEYCLOAK_CLIENT_ID")
export KEYCLOAK_CLIENT_SECRET_PARAM=$([ -n "$KEYCLOAK_CLIENT_SECRET" ] && echo "keycloak.client_secret = $KEYCLOAK_CLIENT_SECRET")
export KEYCLOAK_REALM_PARAM=$([ -n "$KEYCLOAK_REALM" ] && echo "keycloak.realm = $KEYCLOAK_REALM")
if [ -n "$GIT_SSH_PUBLIC_KEY" ]; then
IR_CONFIG_PARAMETER+=$'\n'"git.ssh_public_key = \"$GIT_SSH_PUBLIC_KEY\""
fi
if [ -n "$BASE_URL_WEBSITE" ]; then
IR_CONFIG_PARAMETER+=$'\n'"base_url_website = \"$BASE_URL_WEBSITE\""
fi
if [ -n "$BASE_URL_APP" ]; then
IR_CONFIG_PARAMETER+=$'\n'"base_url_app = \"$BASE_URL_APP\""
fi
if [ -n "$UPLOADCARE_PUBLIC_KEY" ]; then
IR_CONFIG_PARAMETER+=$'\n'"uploadcare.public_key = \"$UPLOADCARE_PUBLIC_KEY\""
fi
if [ -n "$UPLOADCARE_SECRET_KEY" ]; then
IR_CONFIG_PARAMETER+=$'\n'"uploadcare.secret_key = \"$UPLOADCARE_SECRET_KEY\""
fi
if [ -n "$KEYCLOAK_BASE_URL" ]; then
IR_CONFIG_PARAMETER+=$'\n'"keycloak.base_url = \"$KEYCLOAK_BASE_URL\""
fi
if [ -n "$KEYCLOAK_CLIENT_ID" ]; then
IR_CONFIG_PARAMETER+=$'\n'"keycloak.client_id = \"$KEYCLOAK_CLIENT_ID\""
fi
if [ -n "$KEYCLOAK_CLIENT_SECRET" ]; then
IR_CONFIG_PARAMETER+=$'\n'"keycloak.client_secret = \"$KEYCLOAK_CLIENT_SECRET\""
fi
if [ -n "$KEYCLOAK_REALM" ]; then
IR_CONFIG_PARAMETER+=$'\n'"keycloak.realm = \"$KEYCLOAK_REALM\""
fi
export IR_CONFIG_PARAMETER
envsubst < "odoo.conf.template" > "$ODOO_RC"
}
@@ -1308,7 +1337,7 @@ function test-project() {
echo -e "\033[38;5;214mTEST\033[0m: Init Odoo database."
export ODOO_ADDONS_PATH="/mnt/oca/partner-contact"
export ODOO_DATABASE=test
export ODOO_INIT_DEMO_DATA=True
export WITHOUT_DEMO=False
export ODOO_INIT_LOGIN=test
export ODOO_INIT_PASSWORD=test
export ODOO_INIT_LANG=de_CH