#!/usr/bin/env bash
set -e

script=$(basename "$0")
version="1.0.1"

help() {
    echo
    echo "$script v$version"
    echo
    echo 'Description: Drop Odoo database in Kubernetes cluster.'
    echo "Syntax: $script <label> <database>"
    echo "Example: $script odoo-odoo erp"
    echo 'Options:'
    echo "  help  Show $script manual."
    echo
}

if [[ "$1" == 'help' ]]; then
    help
    exit 0
fi

label="$1"
database="$2"

[[ -z "$label" ]] && { echo 'Error: Parameter label is empty'; exit 1; }
[[ -z "$database" ]] && { echo 'Error: Parameter database is empty'; exit 1; }

pod_id=$(kubectl get pods -l app="$label" -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
if [[ -z "$pod_id" ]]; then
    echo "Error: No pod found with label '$label'"
    exit 1
fi

kubectl_exec="kubectl exec $pod_id -- /bin/bash -c"

echo "Kill database connections on $database"
$kubectl_exec "psql postgres -c \"SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$database';\""

echo "Drop database $database"
$kubectl_exec "psql postgres -c \"DROP DATABASE $database;\"" || true

echo "Remove filestore $database"
$kubectl_exec "rm -rf /var/lib/odoo/filestore/$database"

echo "The Odoo database '$database' has been removed."
