#!/usr/bin/env bash # Désinstaller un thème comme Odoo le fait lui-même. # # « ./run.sh --uninstall theme_x » retire le MODULE, pas le THÈME. Choisir un # thème (button_choose_theme, ce que pose --install-theme) fait DEUX choses : # copier ses vues et ressources dans chaque site, et écrire dans # user_values.scss une personnalisation qui DÉFINIT $o-theme-font-number et # ses trois voisines. Le chemin de retrait d'Odoo, _theme_remove(), défait les # deux. # # Le désinstaller sans lui laisse donc les copies, et surtout n'écrit jamais # ces définitions. Mesuré sur une migration réelle 12 -> 13 : le bundle # web.assets_frontend s'arrête sur « Undefined variable: $o-theme-font-number # ». La variable venait des fichiers option_font_body_* d'Odoo 12, supprimés # en 13.0 ; seul le thème la redéfinissait encore, et le retirer a mis à nu # une personnalisation figée depuis des années. # # Usage : ./script/addons/uninstall_addons_theme.sh [config] Red='\033[0;31m' # Red Color_Off='\033[0m' # Text Reset if [[ $# -lt 2 ]]; then echo "Usage: $0 [config]" exit 1 fi DATABASE="$1" THEME="$2" CONFIG="${3:-./config.conf}" if [[ $# -eq 3 ]]; then ./script/addons/check_addons_exist.py -m "$THEME" -c "$3" else ./script/addons/check_addons_exist.py -m "$THEME" fi retVal=$? if [[ $retVal -ne 0 ]]; then echo -e "${Red}Error${Color_Off} check_addons_exist.py into uninstall_addons_theme.sh" exit 1 fi echo "Unload theme '$THEME' from every website of BD '$DATABASE'" # Le déchargement passe par le shell : _theme_remove() n'a pas d'option de # ligne de commande, et l'écrire ici évite d'ajouter une option au fork pour # chaque version d'Odoo. Les journaux se mêlent à la sortie, d'où la # sentinelle : on ne conclut que sur ce qui la suit. ./odoo_bin.sh shell -c "$CONFIG" -d "$DATABASE" --no-http --log-level=warn <