From 76eb86e2e45bb111c8a6215e13892e292d5ab3c4 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Thu, 5 Apr 2018 13:19:10 +0200 Subject: add mysql.sh --- %HOME%/.bash_utils/mysql.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 %HOME%/.bash_utils/mysql.sh (limited to '%HOME%/.bash_utils') diff --git a/%HOME%/.bash_utils/mysql.sh b/%HOME%/.bash_utils/mysql.sh new file mode 100644 index 0000000..e5a02fe --- /dev/null +++ b/%HOME%/.bash_utils/mysql.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +# Copyright (c) 2018 Egor Tensin +# This file is part of the "Linux/Cygwin environment" project. +# For details, see https://github.com/egor-tensin/linux-home. +# Distributed under the MIT License. + +_runsql_check_var() ( + set -o errexit -o nounset -o pipefail + + local prefix="${FUNCNAME[0]}" + [ "${#FUNCNAME[@]}" -gt 1 ] && prefix="${FUNCNAME[1]}" + + local var_name + for var_name; do + if [ -z "${!var_name:+x}" ]; then + echo "$prefix: $var_name is not set" >&2 + return 1 + fi + done +) + +runsql() ( + set -o errexit -o nounset -o pipefail + + _runsql_check_var MYSQL_USER MYSQL_PASSWORD MYSQL_HOST + local MYSQL_PORT="${MYSQL_PORT:-3306}" + + local -a statement_list + local stmt + for stmt; do + statement_list+=(-e "$stmt") + done + + mysql \ + --user="$MYSQL_USER" \ + --password="$MYSQL_PASSWORD" \ + --host="$MYSQL_HOST" \ + --port="$MYSQL_PORT" \ + "${statement_list[@]}" +) -- cgit v1.2.3