#!/bin/bash
#< Script to search my personal MySQL notes database

BASENAME="/usr/bin/basename"
ECHO="/bin/echo"
MYSQL="/usr/local/mysql/bin/mysql"
RM="/bin/rm"

DB_NAME="notesdb"
DB_USER="notesuser"
DB_PASS="password"
THIS_PROG=$( ${BASENAME} $0 )
QUERY_TMP="query.sql"

function print_error {
   ${ECHO} "Error: $@" >&2
}

function print_usage {
   {
      ${ECHO} "Usage: ${THIS_PROG} \"search terms\""
   } >&2
}


function prepare_query {
   NUM_ITEMS=${#QUERY_ARRAY[@]}
   COUNTER=0
   while [ "${COUNTER}" -lt "${NUM_ITEMS}" ]; do
      if [ -z "${QUERY_STRING}" ]; then
         QUERY_STRING="SELECT id,subject FROM notes_table WHERE text LIKE '%${QUERY_ARRAY[${COUNTER}]}%'"
      else
         QUERY_STRING="${QUERY_STRING} AND text LIKE '%${QUERY_ARRAY[${COUNTER}]}%'"
      fi
      (( COUNTER = COUNTER + 1 ))
   done
   QUERY_STRING="${QUERY_STRING};"
   ${ECHO} "${QUERY_STRING}" > ${QUERY_TMP}
}

function execute_query {
  ${MYSQL} -u ${DB_USER} --password=${DB_PASS} ${DB_NAME} <  ${QUERY_TMP}
}

if [ "$#" -lt "1" ]; then
   print_usage && exit 1
fi

QUERY_ARRAY=( $@ )

prepare_query
execute_query

${RM} -f ${QUERY_TMP}

exit 0