#!/bin/bash # include everything from include for inc in $(find ./include -type f -name \*.sh) do source "${inc}" done die() { echo "ERROR: $@" exit 1 } mysql_command() { local sql_user local sql_pass local sql_host local sql_db local sql_command sql_user=$1 sql_pass=$2 sql_host=$3 sql_db=$4 sql_command=$5 #fallback (sql_opts not, they are optional ) if [ -z "${sql_user}" \ -o -z "${sql_pass}" \ -o -z "${sql_host}" \ -o -z "${sql_db}" \ -o -z "${sql_command}" ] then echo echo "Usage:" echo -e " mysql_command user pass host db \"sql-command\"" echo return 1 fi mysql \ --user="${sql_user}" \ --password="${sql_pass}" \ --host="${sql_host}" \ --database="${sql_db}" \ --batch \ --skip-column-names \ --execute="${sql_command}" \ || return 1 return 0 } mysqldo() { mysql_command \ "${MCORE_SQL_USER}" \ "${MCORE_SQL_PASS}" \ "${MCORE_SQL_HOST}" \ "${MCORE_SQL_DB}" \ "$@" \ && return 0 || return 1 } # creates a mysql table with help of a defined array TABLE_DEFINITION: # array values are a struct like this: # first array element is the table name, everything else are column descriptions # TABLE_DEFINITION=( # "table_name" # "column1_name column1_argvs" # "column2_name column2_argvs" # "columnN_name columnN_argvs" # ) sql_create_table() { local table local count local i local line local opts local column local autoincrement local primary local create table="${TABLE_DEFINITION[0]}" count="${#TABLE_DEFINITION[*]}" for ((i=1; i