50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
#!/bin/bash
|
|
set -e # Exit on any error
|
|
|
|
# Get the directory of the script
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
# Find node executable
|
|
node=$(which node)
|
|
|
|
# Get database credentials from config
|
|
db_user=$($node -e "console.log(require('${SCRIPT_DIR}/../src/config/database.js').development.connection.user);")
|
|
if [ -z "$db_user" ]; then
|
|
echo "Error: Could not get database user"
|
|
exit 1
|
|
fi
|
|
|
|
db_pass=$($node -e "console.log(require('${SCRIPT_DIR}/../src/config/database.js').development.connection.password);")
|
|
if [ -z "$db_pass" ]; then
|
|
echo "Error: Could not get database password"
|
|
exit 1
|
|
fi
|
|
|
|
db_name=$($node -e "console.log(require('${SCRIPT_DIR}/../src/config/database.js').development.connection.database);")
|
|
if [ -z "$db_name" ]; then
|
|
echo "Error: Could not get database name"
|
|
exit 1
|
|
fi
|
|
|
|
# Execute MySQL commands
|
|
mysql -u"$db_user" -p"$db_pass" "$db_name" <<EOF
|
|
START TRANSACTION;
|
|
|
|
# Delete messages first due to foreign key constraint
|
|
DELETE m FROM messages m
|
|
INNER JOIN temp_emails e ON m.temp_email_id = e.id
|
|
WHERE DATE(e.expires_at) = CURDATE();
|
|
|
|
# Then delete the expired emails
|
|
DELETE FROM temp_emails
|
|
WHERE DATE(expires_at) = CURDATE();
|
|
|
|
COMMIT;
|
|
EOF
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "Successfully cleaned up expired emails and messages"
|
|
else
|
|
echo "Error occurred while cleaning up expired emails and messages"
|
|
exit 1
|
|
fi |