#!/bin/bash
set -e

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

# Display Help
Help() {
    echo
    echo "$SCRIPT"
    echo
    echo "Description: List all databases in a MySQL/MariaDB Docker container."
    echo "Syntax: $SCRIPT [-c|help]"
    echo "Example: $SCRIPT -c mysql01"
    echo "options:"
    echo "  -c    Docker container. Defaults to 'mysql'."
    echo "  help  Show $SCRIPT manual."
    echo
}

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

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

# Fallback to environment vars and default values
: ${CONTAINER:='mysql'}

# Get image
IMAGE=$(docker inspect $CONTAINER --format='{{.Config.Image}}')

if $ALL; then
  # Get all databases from docker container
  
  if [[ "$IMAGE" =~ "mariadb" ]]; then
    docker exec $CONTAINER bin/bash -c "export MYSQL_PWD=\$MARIADB_ROOT_PASSWORD; mysql -N -h\$HOSTNAME -uroot -e 'show databases;'"
  fi
  if [[ "$IMAGE" =~ "mysql" ]]; then
    docker exec $CONTAINER bin/bash -c "export MYSQL_PWD=\$MYSQL_ROOT_PASSWORD; mysql -N -h\$HOSTNAME -uroot -e 'show databases;'"
  fi
fi