]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - scripts/delete_status_network.sh
Don't trust local HTML either
[quix0rs-gnu-social.git] / scripts / delete_status_network.sh
index f55f1486bbbf7d902db8465e4ab2cdc2116f2cc3..4e91cd639071af760f2d4df7c88a56034d8cb602 100755 (executable)
@@ -1,21 +1,48 @@
 #!/bin/bash
 
-source /etc/statusnet/setup.cfg
+# 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
 
-# Create the db
+# 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'"`
 
-mysqladmin -h $DBHOST -u $ADMIN --password=$ADMINPASS -f drop $database
+if [ "x" == "x$TARGET_DBHOST" ]
+then
+    echo "Aborting: Could not find status_network record for site $nickname"
+    exit 1
+fi
 
-mysql -h $DBHOST -u $ADMIN --password=$ADMINPASS $SITEDB << ENDOFCOMMANDS
+# Drop the database
+echo "Dropping $database from $TARGET_DBHOST..."
+mysqladmin -h $TARGET_DBHOST -u $ADMIN --password=$ADMINPASS -f drop $database || exit 1
 
-delete from status_network where nickname = '$nickname';
-
-ENDOFCOMMANDS
+# 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
-    rm -Rf $top/$nickname
+    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."