#!/usr/bin/env bash set -euo pipefail MYSQL_PATH="mysql" HOST="" PORT="" USERNAME="" PASSWORD="" DB_NAME="" SQL_FILE="" while [[ $# -gt 0 ]]; do case "$1" in --mysql-path) MYSQL_PATH="${2:-}" shift 2 ;; --host) HOST="${2:-}" shift 2 ;; --port) PORT="${2:-}" shift 2 ;; --username) USERNAME="${2:-}" shift 2 ;; --password) PASSWORD="${2:-}" shift 2 ;; --db-name) DB_NAME="${2:-}" shift 2 ;; --sql-file) SQL_FILE="${2:-}" shift 2 ;; *) echo "[ERROR] unsupported argument: $1" >&2 exit 1 ;; esac done if [[ -z "${HOST}" || -z "${PORT}" || -z "${USERNAME}" || -z "${DB_NAME}" || -z "${SQL_FILE}" ]]; then echo "[ERROR] missing required database restore arguments" >&2 exit 1 fi if [[ ! -f "${SQL_FILE}" ]]; then echo "[ERROR] sql file not found: ${SQL_FILE}" >&2 exit 1 fi "${MYSQL_PATH}" \ --host="${HOST}" \ --port="${PORT}" \ --user="${USERNAME}" \ --password="${PASSWORD}" < "${SQL_FILE}"