#!/bin/bash # # Installs selected content from the downloaded repos into a production folder # if [ $UID != 0 ]; then echo "You need administration privileges to run this script." exit 1 fi DESTDIR=/opt/odoo Help () { echo "Usage: $0 [-h] -o={all|core|vendor|special|community}" echo echo "Options:" echo "-h Help (display this text)" echo "-o Modules to be patched (one of 'all', 'core', 'vendor'," echo " 'special', 'community'). Required." echo } pt_core () { echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Patch core Odoo modules" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" DEST=$DESTDIR/core/addons/auth_oauth/ OPTIONS="--directory=$DEST --strip=1" patch $OPTIONS < patches/20210603_auth-oauth_redirect-to-root.patch } pt_vendor () { echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Patch vendor modules" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" DEST=$DESTDIR/vendor/electronic_invoice_dian/ OPTIONS="--directory=$DEST --strip=1" patch $OPTIONS < patches/20210817_electronic-invoice-dian_sudo-in-email-sent.patch # Now included in remote repo: # patch $OPTIONS < patches/20210607_electronic-invoice-dian_remove-enterprise-module.patch } pt_special () { echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Patch special electronic invoice modules" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" DEST=$DESTDIR/vendor/ OPTIONS="-p=1" pushd $DEST git apply $OPTIONS patches/20210908_l10n-co-account-e-invoicing_installs-in-production.patch popd OPTIONS="--directory=$DEST --strip=1" patch $OPTIONS < 20210915_l10n-co-partner-person-type_fixes-depends.patch } pt_community () { echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Patch OCA modules" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" DEST=$DESTDIR/community/base_location/ OPTIONS="--directory=$DEST --strip=1" patch $OPTIONS < patches/20210821_base-location_no-zip-from-city.patch # DEST=$DESTDIR/community/auth_oauth_multi_token/ # OPTIONS="--directory=$DEST --strip=1" # patch $OPTIONS < patches/20210420_auth-oauth-multi-token_error-in-login.patch } pt_all () { pt_core # Apply patches to Odoo core pt_vendor # Apply patches to Avancys modules pt_community # Apply patches to OCA modules } if (($# == 0)) then Help exit fi while getopts ":ho:" option; do case $option in h) # display Help Help exit;; o) # Enter a name Modules=$OPTARG;; *) # Invalid option echo "Error: Invalid option" echo Help exit;; esac done case $Modules in 'all') # Apply patches to all modules pt_all exit;; 'core') # Apply patches to Odoo core pt_core exit;; 'vendor') # Apply patches to Avancys modules pt_vendor exit;; 'special') # Apply patches to e-invoice Avancys modules pt_special exit;; 'community') # Apply patches to OCA modules pt_community exit;; *) # Invalid option echo "Error: Invalid module" echo Help exit;; esac