#!/bin/bash # # mysql functions for the bash # Version 0.1 # # Niels Rogalla # # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/mysqlfunctions,v 1.3 2005-04-12 20:45:55 niro Exp $ 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 } mysql_enum_colums(){ local SQL_USER local SQL_PASS local SQL_HOST local SQL_DB local SQL_TABLE local SHOWTABLES local i local read local field local type local null local key local default local extra SQL_USER=$1 SQL_PASS=$2 SQL_HOST=$3 SQL_DB=$4 SQL_TABLE=$5 #show the column names ? if [ -n "${6}" -a "${6}" == "show" ] then SHOWTABLES=true else SHOWTABLES=false fi #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_TABLE}" ] then echo echo "Usage:" echo -e " mysql_enum_columns user pass host db table [show]" echo return 1 fi declare -i i=0 while read field type null key default extra do i=${i}+1 [ "${SHOWTABLES}" == true ] && echo "${field}" done << EOF $(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} "show columns from ${SQL_TABLE};") EOF [ "${SHOWTABLES}" == true ] || echo "${i}" }