Commits

Tarashish Mishra committed 7ad25fc

Added web interface for index operations

  • Participants
  • Parent commits 5281fec
  • Branches gae

Comments (0)

Files changed (5)

File MoinMoin/script/__init__.py

 # Copyright: 2000-2002 Juergen Hermann <jh@web.de>
 # Copyright: 2006,2011 MoinMoin:ThomasWaldmann
+# Copyright: 2013 MoinMoin:TarashishMishra
 # License: GNU GPL v2 (or any later version), see LICENSE.txt for details.
 
 """
 import sys
 
 
+def add_index_commands(manager):
+    from MoinMoin.script.maint import index
+    manager.add_command("index-create", index.IndexCreate())
+    manager.add_command("index-build", index.IndexBuild())
+    manager.add_command("index-update", index.IndexUpdate())
+    manager.add_command("index-destroy", index.IndexDestroy())
+    manager.add_command("index-move", index.IndexMove())
+    manager.add_command("index-optimize", index.IndexOptimize())
+    manager.add_command("index-dump", index.IndexDump())
+
+    manager.add_option('-i', '--index-create', action='store_true', dest='create_index', required=False, default=False)
+    manager.add_option('-s', '--storage-create', action='store_true', dest='create_storage', required=False, default=False)
+
+
+def add_serialization_commands(manager):
+    from MoinMoin.script.maint import serialization
+    manager.add_command("save", serialization.Serialize())
+    manager.add_command("load", serialization.Deserialize())
+
+
+def add_create_user_commands(manager):
+    from MoinMoin.script.account.create import Create_User
+    manager.add_command("account_create", Create_User())
+
+
+def add_disable_user_commands(manager):
+    from MoinMoin.script.account.disable import Disable_User
+    manager.add_command("account_disable", Disable_User())
+
+
+def add_set_password_commands(manager):
+    from MoinMoin.script.account.resetpw import Set_Password
+    manager.add_command("account_password", Set_Password())
+
+
+def add_reduce_revisions_commands(manager):
+    from MoinMoin.script.maint.reduce_revisions import Reduce_Revisions
+    manager.add_command("maint_reduce_revisions", Reduce_Revisions())
+
+
+def add_set_meta_commands(manager):
+    from MoinMoin.script.maint.set_meta import Set_Meta
+    manager.add_command("maint_set_meta", Set_Meta())
+
+
+def add_modify_item_commands(manager):
+    from MoinMoin.script.maint import modify_item
+    manager.add_command("item-get", modify_item.GetItem())
+    manager.add_command("item-put", modify_item.PutItem())
+
+
+def add_modified_system_items_commands(manager):
+    from MoinMoin.script.maint.modified_systemitems import Modified_SystemItems
+    manager.add_command("maint_modified_systemitems", Modified_SystemItems())
+
+
+def add_import_moin19_commands(manager):
+    from MoinMoin.script.migration.moin19.import19 import ImportMoin19
+    manager.add_command("import19", ImportMoin19())
+
+
+def add_moin_shell_commands(manager):
+    from MoinMoin.script.maint.moinshell import MoinShell
+    manager.add_command("shell", MoinShell())
+
 def main(default_command='moin', wiki_config=None):
     """
     console_script entry point
 
     manager = Manager(create_app)
     manager.add_option('-c', '--config', dest='config', required=False, default=wiki_config)
-    manager.add_option('-i', '--index-create', action='store_true', dest='create_index', required=False, default=False)
-    manager.add_option('-s', '--storage-create', action='store_true', dest='create_storage', required=False, default=False)
     manager.add_command("moin", Server(host='127.0.0.1', port=8080))
 
-    from MoinMoin.script.maint import index
-    manager.add_command("index-create", index.IndexCreate())
-    manager.add_command("index-build", index.IndexBuild())
-    manager.add_command("index-update", index.IndexUpdate())
-    manager.add_command("index-destroy", index.IndexDestroy())
-    manager.add_command("index-move", index.IndexMove())
-    manager.add_command("index-optimize", index.IndexOptimize())
-    manager.add_command("index-dump", index.IndexDump())
-    from MoinMoin.script.maint import serialization
-    manager.add_command("save", serialization.Serialize())
-    manager.add_command("load", serialization.Deserialize())
-    from MoinMoin.script.account.create import Create_User
-    manager.add_command("account-create", Create_User())
-    from MoinMoin.script.account.disable import Disable_User
-    manager.add_command("account-disable", Disable_User())
-    from MoinMoin.script.account.resetpw import Set_Password
-    manager.add_command("account-password", Set_Password())
-    from MoinMoin.script.maint.reduce_revisions import Reduce_Revisions
-    manager.add_command("maint-reduce-revisions", Reduce_Revisions())
-    from MoinMoin.script.maint.set_meta import Set_Meta
-    manager.add_command("maint-set-meta", Set_Meta())
-    from MoinMoin.script.maint import modify_item
-    manager.add_command("item-get", modify_item.GetItem())
-    manager.add_command("item-put", modify_item.PutItem())
-    from MoinMoin.script.maint.modified_systemitems import Modified_SystemItems
-    manager.add_command("maint-modified-systemitems", Modified_SystemItems())
-    from MoinMoin.script.migration.moin19.import19 import ImportMoin19
-    manager.add_command("import19", ImportMoin19())
-
-    from MoinMoin.script.maint.moinshell import MoinShell
-    manager.add_command("shell", MoinShell())
+    add_index_commands(manager)
+    add_serialization_commands(manager)
+    add_create_user_commands(manager)
+    add_disable_user_commands(manager)
+    add_set_password_commands(manager)
+    add_reduce_revisions_commands(manager)
+    add_set_meta_commands(manager)
+    add_modify_item_commands(manager)
+    add_modified_system_items_commands(manager)
+    add_import_moin19_commands(manager)
+    add_moin_shell_commands(manager)
 
     return manager.run(default_command=default_command)
 

File MoinMoin/templates/cli_index.html

+<!DOCTYPE html>
+<html>
+<h1>{{ _("Index Storage Operation Commandline") }}</h1>
+<div class="moin-form">
+{{ _("Please enter the commad below") }}
+<form method="post" action="/%2Bcli/index">
+	<input type="text" name="command">
+	<input type="submit">
+</form>
+</div>
+</html>
 - url: /static
   static_dir: MoinMoin/static
 
+- url: /%2Bcli/index
+  script: cli_index.app
+  login: admin
+
 - url: /.*
   script: moin.application
 
   version: latest
 - name: PIL
   version: latest
-

File cli_index.py

+# Copyright: 2013 MoinMoin:TarashishMishra
+# License: GNU GPL v2 (or any later version), see LICENSE.txt for details.
+
+"""
+MoinMoin - Provide a web interface for index operations
+
+"""
+
+
+from moin import add_support_to_path
+add_support_to_path()
+
+from flask import render_template, request, redirect
+from flask.ext.script import Manager
+
+# Create the WSGI application object.
+from MoinMoin.app import create_app
+app = create_app()
+
+
+@app.route('/+cli/index', methods=['POST', 'GET'])
+def admin():
+    if request.method == 'POST':
+        command_list = request.form['command'].split()
+        from MoinMoin.script import add_index_commands
+        manager = Manager(create_app)
+        add_index_commands(manager)
+        try:
+            manager.handle('moin', command_list[1], command_list[2:])
+        except SystemExit:
+            return "Invalid Command"
+        return redirect('/')
+    return render_template('cli_index.html')
 called from this module.
 """
 
+
 import os
 import sys
 
-support_path = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'support'))
-if support_path not in sys.path:
-    sys.path.insert(0, support_path)
+
+def add_support_to_path():
+    support_path = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'support'))
+    if support_path not in sys.path:
+        sys.path.insert(0, support_path)
+
+
+add_support_to_path()
+
 server_sw = os.environ.get('SERVER_SOFTWARE', '')
 gae = server_sw.startswith('Development') or server_sw.startswith('Google')