162 lines
4.4 KiB
Bash
Executable File
162 lines
4.4 KiB
Bash
Executable File
#!/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 "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
|
|
SRC=$PWD
|
|
DEST=$DESTDIR/core/
|
|
OPTIONS="-p1 --verbose"
|
|
|
|
pushd $DEST
|
|
git apply $OPTIONS $SRC/patches/20210603_auth-oauth_redirects-to-root.patch
|
|
git apply $OPTIONS $SRC/patches/20220131_purchase-requisition_match-variant.patch
|
|
git apply $OPTIONS $SRC/patches/20220204_mail_re-enables-buttons-in-notifications.patch
|
|
popd
|
|
}
|
|
|
|
pt_vendor ()
|
|
{
|
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
echo " Patch vendor modules"
|
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
|
|
SRC=$PWD
|
|
DEST=$DESTDIR/vendor/
|
|
OPTIONS="-p1 --verbose"
|
|
|
|
pushd $DEST
|
|
# Included upstream:
|
|
# git apply $OPTIONS $SRC/patches/20211209_hr-avancys_delete-without-sql-in-holiday-book.patch
|
|
git apply $OPTIONS $SRC/patches/20211210_hr-avancys_fixes--payment-date-on-payslip.patch
|
|
popd
|
|
|
|
}
|
|
|
|
pt_special ()
|
|
{
|
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
echo " Patch special electronic invoice modules"
|
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
|
|
|
# Roll patch against 'special' repo (taken from 'vendor')
|
|
#DEST=$DESTDIR/vendor/electronic_invoice_dian/
|
|
#OPTIONS="--directory=$DEST --strip=1"
|
|
#patch $OPTIONS < patches/20210922_electronic-invoice-dian_changes-after-1-8.patch
|
|
|
|
SRC=$PWD
|
|
DEST=$DESTDIR/v14-electronic-documents/
|
|
OPTIONS="-p1 --verbose"
|
|
|
|
pushd $DEST
|
|
git apply $OPTIONS $SRC/patches/20210908_l10n-co-account-e-invoicing_fixes-dependencies.patch
|
|
git apply $OPTIONS $SRC/patches/20210908_l10n-co-base-location_ignore-country-state-city-data.patch
|
|
git apply $OPTIONS $SRC/patches/20211119_l10n-co-account-e-invoicing_fixes-off-by-one.patch
|
|
git apply $OPTIONS $SRC/patches/20210915_l10n-co-partner-person-type_fixes-depends.patch
|
|
popd
|
|
|
|
# Just required for initial installation. Revert afterwards:
|
|
# pushd $DEST
|
|
# git apply $OPTIONS patches/20210908_l10n-co-account-e-invoicing_remove-computes-for-initial-install.patch
|
|
# popd
|
|
}
|
|
|
|
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
|
|
|
|
SRC=$PWD
|
|
DEST=$DESTDIR/community/
|
|
OPTIONS="-p1 --verbose"
|
|
|
|
pushd $DEST
|
|
git apply $OPTIONS $SRC/patches/20211216_account-invoice-force-number_post-instead-of-action.patch
|
|
popd
|
|
|
|
}
|
|
|
|
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
|
|
|