Cmd Objects
-----------
A `Cmd' instance has the following methods:
`cmdloop([intro])'
Repeatedly issue a prompt, accept input, parse an initial prefix
off the received input, and dispatch to action methods, passing
them the remainder of the line as argument.
The optional argument is a banner or intro string to be issued
before the first prompt (this overrides the `intro' class member).
If the `readline' module is loaded, input will automatically
inherit `bash'-like history-list editing (e.g. <Ctrl-P> scrolls
back to the last command, <Ctrl-N> forward to the next one,
<Ctrl-F> moves the cursor to the right non-destructively, <Ctrl-B>
moves the cursor to the left non-destructively, etc.).
An end-of-file on input is passed back as the string `'EOF''.
An interpreter instance will recognize a command name `foo' if and
only if it has a method `do_foo()'. As a special case, a line
beginning with the character `?' is dispatched to the method
`do_help()'. As another special case, a line beginning with the
character `!' is dispatched to the method `do_shell' (if such a
method is defined).
All subclasses of `Cmd' inherit a predefined `do_help'. This
method, called with an argument `bar', invokes the corresponding
method `help_bar()'. With no argument, `do_help()' lists all
available help topics (that is, all commands with corresponding
`help_*()' methods), and also lists any undocumented commands.
`onecmd(str)'
Interpret the argument as though it had been typed in response to
the prompt. This may be overridden, but should not normally need
to be; see the `precmd()' and `postcmd()' methods for useful
execution hooks. The return value is a flag indicating whether
interpretation of commands by the interpreter should stop.
`emptyline()'
Method called when an empty line is entered in response to the
prompt. If this method is not overridden, it repeats the last
nonempty command entered.
`default(line)'
Method called on an input line when the command prefix is not
recognized. If this method is not overridden, it prints an error
message and returns.
`precmd()'
Hook method executed just before the command line LINE is
interpreted, but after the input prompt is generated and issued.
This method is a stub in `Cmd'; it exists to be overridden by
subclasses. The return value is used as the command which will be
executed by the `onecmd()' method; the `precmd()' implementation
may re-write the command or simply return LINE unchanged.
`postcmd(stop, line)'
Hook method executed just after a command dispatch is finished.
This method is a stub in `Cmd'; it exists to be overridden by
subclasses. LINE is the command line which was executed, and STOP
is a flag which indicates whether execution will be terminated
after the call to `postcmd()'; this will be the return value of
the `onecmd()' method. The return value of this method will be
used as the new value for the internal flag which corresponds to
STOP; returning false will cause interpretation to continue.
`preloop()'
Hook method executed once when `cmdloop()' is called. This method
is a stub in `Cmd'; it exists to be overridden by subclasses.
`postloop()'
Hook method executed once when `cmdloop()' is about to return.
This method is a stub in `Cmd'; it exists to be overridden by
subclasses.
Instances of `Cmd' subclasses have some public instance variables:
`prompt'
The prompt issued to solicit input.
`identchars'
The string of characters accepted for the command prefix.
`lastcmd'
The last nonempty command prefix seen.
`intro'
A string to issue as an intro or banner. May be overridden by
giving the `cmdloop()' method an argument.
`doc_header'
The header to issue if the help output has a section for documented
commands.
`misc_header'
The header to issue if the help output has a section for
miscellaneous help topics (that is, there are `help_*()' methods
without corresponding `do_*()' methods).
`undoc_header'
The header to issue if the help output has a section for
undocumented commands (that is, there are `do_*()' methods without
corresponding `help_*()' methods).
`ruler'
The character used to draw separator lines under the help-message
headers. If empty, no ruler line is drawn. It defaults to `='.
`use_rawinput'
A flag, defaulting to true. If true, `cmdloop()' uses
`raw_input()' to display a prompt and read the next command; if
false, `sys.stdout.write()' and `sys.stdin.readline()' are used.