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

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

help() {
    echo
    echo "$script"
    echo
    echo 'Description: Drop Odoo database.'
    echo "Syntax: $script [-p|-d|-h|-V|help]"
    echo 'Example: $script -p secret -d odoo -h https://odoo.example.com'
    echo 'options:'
    echo '  -p    Odoo master password. Defaults to \$ODOO_MASTER_PASSWORD env var and '\''admin'\''.'
    echo '  -d    Database name.'
    echo '  -h    Odoo host. Defaults to '\''http://localhost:8069'\''.'
    echo '  -v    Show $script version.'
    echo "  help  Show $script manual."
    echo
}

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

password=${ODOO_MASTER_PASSWORD:=odoo}
odoo_host=http://localhost:8069

while getopts ':p: :d: :h: :V' opt; do
    case $opt in
        p) password="$OPTARG";;
        d) database="$OPTARG";;
        h) odoo_host="$OPTARG";;
        V) echo "$script version $version"
        exit 0
        ;;
        \?) echo "Invalid option -$OPTARG" >&2
        help
        exit;;
    esac
done

[[ -z "$database" ]] && { echo 'Parameter -d|database is empty.' ; exit 1; }

read -p "Please confirm the deletion of $database on $odoo_host (y/n)? " reply
if [[ $reply == y ]]; then

    echo "Deleting Odoo database $database ..."

    response=$(curl \
        -F "master_pwd=${password}" \
        -F "name=${database}" \
        "${odoo_host%/}/web/database/drop")

    echo "$response" | grep 'error' && exit 1

    echo "The deletion of Odoo database $database has finished."

fi
