gnu-social/scripts/delete_status_network.sh
Brion Vibber 9c6e63b0bc Fixes for delete_status_network.sh:
* add some sanity checking: abort on failures instead of plodding through
* add some progress / error output
* fetch the target database server name from the status_network entry and use that to target the DROP DATABASE

Note that database names and other overrides in status_network entry may still not be seen.
2010-11-22 11:10:10 -08:00

49 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# live fast! die young!
set -e
source /etc/statusnet/setup.cfg || (echo "Failed to read /etc/statusnet/setup.cfg"; exit -1)
export nickname=$1
if [ "x" == "x$nickname" ]
then
echo "Usage: delete_status_network.sh <site-nickname>"
exit 1
fi
export database=$nickname$DBBASE
# Pull the status_network record so we know which DB server to drop from...
TARGET_DBHOST=`mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB --batch --skip-column-names -e \
"select dbhost from status_network where nickname='$nickname'"`
if [ "x" == "x$TARGET_DBHOST" ]
then
echo "Aborting: Could not find status_network record for site $nickname"
exit 1
fi
# Drop the database
echo "Dropping $database from $TARGET_DBHOST..."
mysqladmin -h $TARGET_DBHOST -u $ADMIN --password=$ADMINPASS -f drop $database || exit 1
# Remove the status_network entry
echo "Removing status_network entry for $nickname..."
mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB -e \
"delete from status_network where nickname = '$nickname'" || exit 1
# Remove uploaded file areas
for top in $AVATARBASE $FILEBASE $BACKGROUNDBASE; do
if [ "x" == "x$top" ]
then
echo "Skipping deletion due to broken config"
else
echo "Deleting $top/$nickname"
rm -Rf "$top/$nickname"
fi
done
echo "Done."