You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by rj...@apache.org on 2013/05/31 02:47:10 UTC
svn commit: r1488070 -
/bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
Author: rjollos
Date: Fri May 31 00:47:09 2013
New Revision: 1488070
URL: http://svn.apache.org/r1488070
Log:
Refs #518: Added `TracAdmin` help commands for product scope.
Patch by Olemis.
Examples:
{{{
$ trac-admin $TRACENV product admin <prefix> help
$ trac-admin $TRACENV product admin <prefix> help component
}}}
Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py?rev=1488070&r1=1488069&r2=1488070&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py Fri May 31 00:47:09 2013
@@ -20,6 +20,7 @@
from trac.admin.api import IAdminCommandProvider, AdminCommandError,\
AdminCommandManager
+from trac.admin.console import TracAdmin, TRAC_VERSION
from trac.admin.web_ui import AdminModule
from trac.core import *
from trac.config import *
@@ -27,8 +28,8 @@ from trac.perm import PermissionSystem
from trac.resource import ResourceNotFound
from trac.ticket.admin import TicketAdminPanel, _save_config
from trac.util import lazy
-from trac.util.text import print_table, to_unicode
-from trac.util.translation import _, N_, gettext
+from trac.util.text import print_table, to_unicode, printerr, printout
+from trac.util.translation import _, N_, gettext, ngettext
from trac.web.api import HTTPNotFound, IRequestFilter, IRequestHandler
from trac.web.chrome import Chrome, add_notice, add_warning
@@ -296,11 +297,34 @@ class ProductAdminModule(Component):
def _do_product_admin(self, prefix, *args):
mgr = self.product_admincmd_mgr(prefix)
- if args and args[0] in ('deploy', 'help', 'hotcopy', 'initenv',
- 'upgrade'):
+ if args and args[0] in ('deploy', 'hotcopy', 'initenv', 'upgrade'):
raise AdminCommandError('%s command not supported for products' %
(args[0],))
- mgr.execute_command(*args)
+ if args and args[0] == 'help':
+ help_args = args[1:]
+ if help_args:
+ doc = mgr.get_command_help(list(help_args))
+ if doc:
+ TracAdmin.print_doc(doc)
+ else:
+ printerr(_("No documentation found for '%(cmd)s'."
+ " Use 'help' to see the list of commands.",
+ cmd=' '.join(help_args)))
+ cmds = mgr.get_similar_commands(help_args[0])
+ if cmds:
+ printout('')
+ printout(ngettext("Did you mean this?",
+ "Did you mean one of these?",
+ len(cmds)))
+ for cmd in cmds:
+ printout(' ' + cmd)
+ else:
+ printout(_("trac-admin - The Trac Administration Console "
+ "%(version)s", version=TRAC_VERSION))
+ env = mgr.env
+ TracAdmin.print_doc(TracAdmin.all_docs(env), short=True)
+ else:
+ mgr.execute_command(*args)
# IRequestFilter methods
def pre_process_request(self, req, handler):