#!/usr/bin/env bash

function generate_password_hash {
  docker run -it -p 3306:3306 \
    --entrypoint=/tmp/test.sh \
    -v ./test.sh:/tmp/test.sh \
    -e MYSQL_NEW_USER="${MYSQL_USER}" \
    -e MYSQL_PASSWORD="${MYSQL_PASSWORD}" \
    -e MYSQL_ROOT_PASSWORD=my-secret-pw \
    mysql:8
}

while getopts 'hp:u:' flag; do
  case "${flag}" in
  h) printf '%s\n' "This script generates a CREATE USER statement suitable for inclusion in a SQL script or Terraform code"
     printf '%s\n' ''
     printf '%s\n' "-p: Plaintext password"
     printf '%s\n' "-u: Username"
     exit 0;;
  p) MYSQL_PASSWORD="${OPTARG}" ;;
  u) MYSQL_USER="${OPTARG}" ;;
  *) printf "Unexpected option ${flag}\n"
     exit 1 ;;
  esac
done

if [ -z "${MYSQL_USER}" ] || [ -z "${MYSQL_PASSWORD}" ]; then
  printf '%s\n' "Both -u (user) and -p (password) options must be provided" && exit 1
else
  generate_password_hash
fi
