Mercurial > python-cmd2
annotate example/example.py @ 436:c4c35f002aef 0.6.4
to version 0.6.4
author | catherine.devlin@gmail.com |
---|---|
date | Thu, 25 Aug 2011 16:27:42 -0400 |
parents | bfbe4241bd6b |
children |
rev | line source |
---|---|
106 | 1 '''A sample application for cmd2.''' |
2 | |
334 | 3 from cmd2 import Cmd, make_option, options |
106 | 4 import unittest, optparse, sys |
5 | |
6 class CmdLineApp(Cmd): | |
7 multilineCommands = ['orate'] | |
8 Cmd.shortcuts.update({'&': 'speak'}) | |
9 maxrepeats = 3 | |
435 | 10 redirector = '->' |
291 | 11 Cmd.settable.append('maxrepeats Max number of `--repeat`s allowed') |
106 | 12 |
13 @options([make_option('-p', '--piglatin', action="store_true", help="atinLay"), | |
14 make_option('-s', '--shout', action="store_true", help="N00B EMULATION MODE"), | |
15 make_option('-r', '--repeat', type="int", help="output [n] times") | |
413
f16f444a4d10
added arg_desc to @options, thanks Renzo Crispiatico
Catherine Devlin <catherine.devlin@gmail.com>
parents:
334
diff
changeset
|
16 ], arg_desc = '(text to say)') |
106 | 17 def do_speak(self, arg, opts=None): |
18 """Repeats what you tell me to.""" | |
19 arg = ''.join(arg) | |
20 if opts.piglatin: | |
301 | 21 arg = '%s%say' % (arg[1:].rstrip(), arg[0]) |
106 | 22 if opts.shout: |
23 arg = arg.upper() | |
24 repetitions = opts.repeat or 1 | |
25 for i in range(min(repetitions, self.maxrepeats)): | |
26 self.stdout.write(arg) | |
27 self.stdout.write('\n') | |
28 # self.stdout.write is better than "print", because Cmd can be | |
310 | 29 # initialized with a non-standard output destination |
106 | 30 |
31 do_say = do_speak # now "say" is a synonym for "speak" | |
32 do_orate = do_speak # another synonym, but this one takes multi-line input | |
33 | |
287
1cd23003e8d5
refactoring, but something went wrong with comments
catherine@bothari
parents:
259
diff
changeset
|
34 c = CmdLineApp() |
334 | 35 c.cmdloop() |