Petrb has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/62350


Change subject: latest version of rmtool
......................................................................

latest version of rmtool

Change-Id: I83a7e7046ad991d3e29c59aece92d1daf4501767
---
A usr/local/sbin/rmtool
1 file changed, 91 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/labs/toollabs 
refs/changes/50/62350/1

diff --git a/usr/local/sbin/rmtool b/usr/local/sbin/rmtool
new file mode 100755
index 0000000..06a7696
--- /dev/null
+++ b/usr/local/sbin/rmtool
@@ -0,0 +1,91 @@
+#!/bin/bash
+
+if [ $UID -gt 0 ];then
+       echo "Error you must be root"
+       exit 2
+fi
+
+if [ $# -lt 1 ];then
+       echo "You need to provide a tool name"
+       exit 1
+fi
+
+tool=$1
+dbuser=`echo $1 | sed 's/-//'`
+
+# get a number of users of this name in mysql
+uc=`echo "select user from user;" | mysql mysql | grep -cE ^$dbuser'$'`
+
+echo "There is $uc user accounts of name $dbuser in database"
+
+if [ "$uc" -gt 0 ];then
+       echo "Removing db access of $tool"
+       echo "drop user $dbuser;" | mysql mysql
+fi
+
+# get the number of databases for this user
+db=`echo "show databases;" | mysql mysql | grep -cE ^$dbuser'$'`
+
+echo "There is $db databases of name $tool in database"
+
+if [ "$db" -gt 0 ];then
+       echo "Creating a backup of database $tool"
+       if [ -f "/data/project/$tool/database_backup.sql" ];then
+               echo "Error there is already a backup file"
+               exit 1
+       fi
+       if [ ! -d "/data/project/$tool" ];then
+               echo "There is no folder to save backup of db to!"
+               exit 1
+       fi
+       mysqldump "$dbuser" > "/data/project/$tool/database_backup.sql"
+        echo "Removing db access of $tool"
+        echo "drop database $dbuser;" | mysql mysql
+fi
+
+if [ ! -d /data/project/removed_tools ];then
+    echo "There is no folder to store removed tools!"
+    exit 1
+fi
+
+if [ -d "/data/project/$tool" ];then
+       echo "Removing data folder for $tool"
+       if [ -d "/data/project/removed_tools/$tool" ];then
+               echo "Unable to remove the folder, there is already backup 
folder with this name"
+               exit 1
+       fi
+       mv "/data/project/$tool" "/data/project/removed_tools/$tool/"
+       if [ -f "/data/project/removed_tools/$tool.tar.gz" ];then
+               echo "Unable to tarball the folder because there is another 
tarball with same name"
+       else
+               cd /data/project/removed_tools
+               tar -zcvf "$tool.tar.gz" "$tool"
+               if [ -f "/data/project/removed_tools/$tool.tar.gz" ];then
+                       echo Deleting project folder
+                       rm -rf "/data/project/removed_tools/$tool"
+               fi
+       fi
+fi
+
+# get a number of records in /data/project/.system/webservers
+
+while [ -f /data/project/.system/webservers.lock ]
+do
+       echo "There is a lockfile, sleeping for 10 seconds"
+       sleep 10
+done
+
+touch /data/project/.system/webservers.lock
+wc=`cat /data/project/.system/webservers | grep -Ec "^$tool\s.*"`
+
+if [ "$wc" -gt 0 ];then
+       # create a backup file so that if stuff get fucked up we can recover it
+       cp /data/project/.system/webservers /tmp/webservers.backup.`date 
+%H:%M:%S`
+       echo "Removing webserver"
+       cat /data/project/.system/webservers | grep -vE "^$tool\s.*" > 
/tmp/webservers
+       mv /tmp/webservers /data/project/.system/webservers
+fi
+
+rm /data/project/.system/webservers.lock
+
+echo "All data for $tool were cleaned"

-- 
To view, visit https://gerrit.wikimedia.org/r/62350
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I83a7e7046ad991d3e29c59aece92d1daf4501767
Gerrit-PatchSet: 1
Gerrit-Project: labs/toollabs
Gerrit-Branch: master
Gerrit-Owner: Petrb <benap...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to