Moves destroy_environment to wipealldata command
authorWill Kahn-Greene <willg@bluesock.org>
Wed, 27 Jul 2011 22:38:47 +0000 (15:38 -0700)
committerWill Kahn-Greene <willg@bluesock.org>
Sat, 30 Jul 2011 12:39:07 +0000 (08:39 -0400)
destroy_environment.py [deleted file]
mediagoblin/gmg_commands/__init__.py
mediagoblin/gmg_commands/wipealldata.py [new file with mode: 0644]

diff --git a/destroy_environment.py b/destroy_environment.py
deleted file mode 100755 (executable)
index bbdeffe..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!./bin/python
-
-import pymongo
-import sys, os
-
-print "*** WARNING! ***"
-print "  Running this will destroy your mediagoblin database,"
-print "  remove all your media files in user_dev/, etc."
-
-drop_it = raw_input(
-    'Are you SURE you want to destroy your environment? (if so, type "yes")> ')
-
-if not drop_it == 'yes':
-    sys.exit(1)
-
-conn = pymongo.Connection()
-conn.drop_database('mediagoblin')
-
-os.popen('rm -rf user_dev/media')
-os.popen('rm -rf user_dev/beaker')
-
-print "removed all your stuff!  okay, now re-run ./bin/buildout"
index 0cb4d3a27feff82b06bf3a51da945957f22b26fe..921f0430ae6ca407a8568b3dbb7413e456bf21a9 100644 (file)
@@ -40,6 +40,10 @@ SUBCOMMAND_MAP = {
         'setup': 'mediagoblin.gmg_commands.users:changepw_parser_setup',
         'func': 'mediagoblin.gmg_commands.users:changepw',
         'help': 'Makes admin an user'},
+    'wipealldata': {
+        'setup': 'mediagoblin.gmg_commands.wipealldata:wipe_parser_setup',
+        'func': 'mediagoblin.gmg_commands.wipealldata:wipe',
+        'help': 'Wipes **all** the data for this MediaGoblin instance'},
     }
 
 
diff --git a/mediagoblin/gmg_commands/wipealldata.py b/mediagoblin/gmg_commands/wipealldata.py
new file mode 100644 (file)
index 0000000..9ad3205
--- /dev/null
@@ -0,0 +1,51 @@
+# GNU MediaGoblin -- federated, autonomous media hosting
+# Copyright (C) 2011 Free Software Foundation, Inc
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import sys
+import pymongo
+import sys
+import os
+import shutil
+
+
+def wipe_parser_setup(subparser):
+    pass
+
+
+def wipe(args):
+    print "*** WARNING! ***"
+    print ""
+    print "Running this will destroy your mediagoblin database,"
+    print "remove all your media files in user_dev/, etc."
+
+    drop_it = raw_input(
+        'Are you **SURE** you want to destroy your environment?  '
+        '(if so, type "yes")> ')
+
+    if not drop_it == 'yes':
+        return
+
+    print "nixing data in mongodb...."
+    conn = pymongo.Connection()
+    conn.drop_database('mediagoblin')
+
+    for directory in [os.path.join(os.getcwd(), "user_dev", "media"),
+                      os.path.join(os.getcwd(), "user_dev", "beaker")]:
+        if os.path.exists(directory):
+            print "nixing %s...." % directory
+            shutil.rmtree(directory)
+
+    print "removed all your stuff!  okay, now re-run ./bin/buildout"