1 from __future__
import division, absolute_import
3 from RO.StringUtil
import quoteStr
4 from RO.Alg
import MatchList
5 from twistedActor
import CommandError
12 """Return an RO.Alg.MatchList with all command names
14 Uses an internal cache, so only computes once
17 if _CmdMatchList
is None:
18 cmdNameList = cmdParser.cmdDefDict.keys()
19 _CmdMatchList = MatchList(
20 valueList = cmdNameList,
27 """Return a sub command matchList and dict of sub-command name: sub-command definition
30 subCmdList = cmdDef.subCmdList
31 except AttributeError:
32 raise CommandError(
"The command %r has no sub-commands" % (cmdDef.name,))
33 subCmdDict = dict((subcmd.subCommandName.lower(), subcmd)
for subcmd
in subCmdList)
35 valueList = subCmdDict.keys(),
43 Use help cmdName for full info on the specified command
44 Use help/full for full info on all commands
49 if cmd.parsedCmd.paramDict[
'command'].valueList:
50 cmdName = cmd.parsedCmd.paramDict[
'command'].valueList[0]
53 fullCmdName = cmdMatchList.getUniqueMatch(cmdName)
54 except ValueError
as e:
56 cmdDef = tccActor.cmdParser.cmdDefDict[fullCmdName]
57 if cmd.parsedCmd.paramDict[
'subcommand'].valueList:
58 subCmdName = cmd.parsedCmd.paramDict[
'subcommand'].valueList[0]
63 fullSubCmdName = subCmdMatchList.getUniqueMatch(subCmdName)
64 except ValueError
as e:
67 subCmdDef = subCmdDict[fullSubCmdName]
68 if cmdName
is not None:
70 if subCmdDef
is not None:
71 dataList = subCmdDef.getFullHelp()
73 dataList = cmdDef.getFullHelp()
74 for outStr
in dataList:
75 for line
in outStr.split(
"\n"):
76 tccActor.writeToOneUser(
"i",
"Text=%s" % (quoteStr(line),), cmd=cmd)
80 cmdList = sorted(tccActor.cmdParser.cmdDefDict.keys())
81 isFull = cmd.parsedCmd.qualDict[
"full"].boolValue
84 for cmdName
in cmdList:
85 cmdDef = tccActor.cmdParser.cmdDefDict[cmdName]
86 dataList = cmdDef.getFullHelp()
87 for outStr
in dataList:
89 for line
in outStr.split(
"\n"):
90 tccActor.writeToOneUser(
"i",
"Text=%s" % (quoteStr(line),), cmd=cmd)
91 tccActor.writeToOneUser(
"i",
"", cmd=cmd)
94 for cmdName
in cmdList:
95 cmdDef = tccActor.cmdParser.cmdDefDict[cmdName]
96 dataList = cmdDef.getBriefHelp()
97 for outStr
in dataList:
98 for line
in outStr.split(
"\n"):
99 tccActor.writeToOneUser(
"i",
"Text=%s" % (quoteStr(line),), cmd=cmd)
100 tccActor.writeToOneUser(
"i",
"", cmd=cmd)