Files
TrinityCore/contrib/check_updates.sh
tkrokli 2fbf89b201 contrib/script: error text corrections in check_updates.sh
Fix a factual error in the /contrib/check_updates.sh error message text,
Best shown in an example from the latest travis build error:
```
$ ./contrib/check_updates.sh auth auth
Database Updater check script:
  Checking database 'auth' for missing filenames in tables...

- "sql/updates/2015_10_09_00_auth.sql" is missing in table 'auth'.'updates'

Fatal error:
  The Database Updater is broken for database 'auth
  due to applied update which are missing in the 'auth'.'updates' table.

How to fix:
  Insert the missing names of sql updates which were applied already to
  the 'updates' table of the 'auth' base dump ('sql/base/auth_database.sql').

The command "./contrib/check_updates.sh auth auth" exited with 1.
```
Main fix: `\"sql/updates/${file}\"` -> `\"sql/updates/${name}/${file}\"`

Before this change, the error message claims that the updated SQL file was placed
directly in the `/sql/updates/` directory and not in the subdirectory based on its DB name.

All the other changes are improvements in English grammar and more precise description.

(cherry picked from commit 01e0475ab8)
2015-10-14 00:29:57 +02:00

45 lines
1.2 KiB
Bash

#!/bin/sh
name=$1
database=$2
echo "Database Updater check script:"
echo " Checking database '${name}' for missing filenames in tables..."
echo
# Select all entries which are in the updates table
entries=$(mysql -uroot ${database} -e "SELECT name FROM updates" | grep ".sql")
cd sql/updates/${name}
error=0
updates=0
for file in *.sql
do
# Check if the given update is in the `updates` table.
if echo "${entries}" | grep -q "^${file}"; then
# File is ok
updates=$((updates+1))
else
# The update isn't listed in the updates table of the given database.
echo "- \"sql/updates/${name}/${file}\" is missing in the '${name}'.'updates' table."
error=1
fi
done
if [ ${error} -ne 0 ]
then
echo
echo "Fatal error:"
echo " The Database Updater is broken for the '${name}' database,"
echo " because the applied update is missing in the '${name}'.'updates' table."
echo
echo "How to fix:"
echo " Insert the missing names of the already applied sql updates"
echo " to the 'updates' table of the '${name}' base dump ('sql/base/${name}_database.sql')."
exit 1
else
echo " Everything is OK, finished checking ${updates} updates."
exit 0
fi