#!/bin/bash

# Exit script if command fails
# -u stops the script on unset variables
# -e stops the script on errors
# -o pipefail stops the script if a pipe fails
set -e

# Get script name
SCRIPT=$(basename "$0")

# Display Help
Help() {
  echo
  echo "$SCRIPT"
  echo
  echo "Description: Clear all assets of Odoo databases."
  echo "Syntax: $SCRIPT [-c||help]"
  echo "Example: $SCRIPT -c postgres01 -d erp"
  echo "options:"
  echo "  -c    Docker container. Defaults to 'db'."
  echo "  -d    Database name. Defaults to 'odoo'."
  echo "  help  Show $SCRIPT manual."
  echo
}

# Show help and exit
if [[ $1 == 'help' ]]; then
  Help
  exit
fi

# Process params
while getopts ":d: :c:" opt; do
  case $opt in
  c) CONTAINER="$OPTARG" ;;
  d) DATABASE="$OPTARG" ;;
  \?)
    echo "Invalid option -$OPTARG" >&2
    Help
    exit
    ;;
  esac
done

# Fallback to environment vars and default values
: ${CONTAINER:='db'}
: ${DATABASE:='odoo'}

echo "Delete these assets on $CONTAINER for $DATABASE:"
docker exec $CONTAINER bash -c "psql postgres://\$POSTGRES_USER:\$POSTGRES_PASSWORD@localhost/$DATABASE -c \"select id,name from ir_attachment where res_model='ir.ui.view' and name like '%assets_%';\""
docker exec $CONTAINER bash -c "psql postgres://\$POSTGRES_USER:\$POSTGRES_PASSWORD@localhost/$DATABASE -c \"delete from ir_attachment where res_model='ir.ui.view' and name like '%assets_%';\""

echo "Restart the odoo container".