#!/bin/bash # Get script name SCRIPT=$(basename "$0") # First param is docker container CONTAINER=$1 # Default configuration PACKAGE_PATH="/mnt/enterprise/" # Custom configuration FILE_PATH="${PACKAGE_PATH}account_reports/models/account_generic_tax_report.py" FIND="move_vals_lines.append((0, 0, {'name': tax_name" IFS='' read -r -d '' REPLACE << EOM domain = [('src', '=', tax_name), ('lang', '=', self._context.get('lang') )] translation = self.env['ir.translation'].search(domain, limit=1) move_vals_lines.append((0, 0, {'name': translation.value if translation else tax_name, 'debit': abs(amt) if amt < 0 else 0, 'credit': amt if amt > 0 else 0, 'account_id': account_id})) EOM # Get filename FILE=`basename "$FILE_PATH"` # Copy from docker docker cp "$CONTAINER":"$FILE_PATH" . # Find and replace LINE=$(grep -n "$FIND" $FILE | cut -f1 -d:) awk -v n="$LINE" -v r="$REPLACE" '{if(NR==n){print r}else{print}}' $FILE > $FILE.tmp && mv $FILE.tmp $FILE # Copy back to docker docker cp $FILE "$CONTAINER":"$FILE_PATH" # Remove file rm -f $FILE # Register patch installation echo "Patch $SCRIPT applied." touch "/etc/odoo/${SCRIPT}_${CONTAINER}_installed"