#!/bin/bash


DBNAME=`basename $1 .sql.gz`

MYSQL="mysql -peuro3g -ueuro3g $DBNAME"
MODIFICHE_COMPLETE="systools/distr/modifiche.sql"

function get_db_version
{
  echo "SELECT version FROM db_version;" | $MYSQL | tail -1
}

function patch_sql
{
  sed 's/TYPE=MyISAM/ENGINE=MyISAM/g; s/timestamp([0-9]*)/timestamp/g'
}

function apply_modifiche
{
  DATA_VERSION=`get_db_version`
  LAST_VERSION=`grep db_version $MODIFICHE_COMPLETE | tail -1 | cut -d'=' -f2 | cut -d' ' -f1`

  echo patching from $DATA_VERSION to $LAST_VERSION
  if [ "$DATA_VERSION" = "$LAST_VERSION" ]
  then
    echo no patch
    return
  fi
  echo patching db using $MODIFICHE_COMPLETE

  if [ `cat $MODIFICHE_COMPLETE | grep -A1000000 "version=$DATA_VERSION" | wc -l` -gt 0 ] 
  then
    cat $MODIFICHE_COMPLETE | \
      grep -A1000000 "version=$DATA_VERSION" | \
      patch_sql | \
      $MYSQL -f 2>/dev/null
  else
    cat $MODIFICHE_COMPLETE | \
      patch_sql | \
      $MYSQL -f 2>/dev/null
  fi
}

if [ ".$1" = "." ]
then
  echo "you should supply database name to upgrade using $MODIFICHE_COMPLETE"
  echo "Usage: "`basename $0`" db_name"
  exit 1
fi
CURR_DIR=`pwd`
cd /opt/euro-beta
apply_modifiche
cd $CURR_DIR

