diff options
author | Zearin <zearin@gonk.net> | 2011-10-05 17:05:31 -0400 |
---|---|---|
committer | Zearin <zearin@gonk.net> | 2011-10-05 17:05:31 -0400 |
commit | aa19e3b9c9f03f7320c2d5470fa977ed0bbdeeab (patch) | |
tree | 97d86fe3a03114be08aac12a7097aa80ac03bc2a /example | |
download | cmd2-aa19e3b9c9f03f7320c2d5470fa977ed0bbdeeab.tar.gz |
Initial import.
Copy of the Python module cmd2 by Catherine Devlin. Note that this is
NOT the official copy (it’s at
http://www.assembla.com/spaces/python-cmd2/wiki ). I’d rather just
work using git + GitHub instead of hg + Assembla. ☺
OTOH, I fully intend to submit changes back to the official repo on
Assembla—so don’t be shy, fork away. I’m happy for any help!
Diffstat (limited to 'example')
-rwxr-xr-x | example/example.py | 35 | ||||
-rw-r--r-- | example/exampleSession.txt | 91 |
2 files changed, 126 insertions, 0 deletions
diff --git a/example/example.py b/example/example.py new file mode 100755 index 0000000..88cefd4 --- /dev/null +++ b/example/example.py @@ -0,0 +1,35 @@ +'''A sample application for cmd2.''' + +from cmd2 import Cmd, make_option, options +import unittest, optparse, sys + +class CmdLineApp(Cmd): + multilineCommands = ['orate'] + Cmd.shortcuts.update({'&': 'speak'}) + maxrepeats = 3 + redirector = '->' + Cmd.settable.append('maxrepeats Max number of `--repeat`s allowed') + + @options([make_option('-p', '--piglatin', action="store_true", help="atinLay"), + make_option('-s', '--shout', action="store_true", help="N00B EMULATION MODE"), + make_option('-r', '--repeat', type="int", help="output [n] times") + ], arg_desc = '(text to say)') + def do_speak(self, arg, opts=None): + """Repeats what you tell me to.""" + arg = ''.join(arg) + if opts.piglatin: + arg = '%s%say' % (arg[1:].rstrip(), arg[0]) + if opts.shout: + arg = arg.upper() + repetitions = opts.repeat or 1 + for i in range(min(repetitions, self.maxrepeats)): + self.stdout.write(arg) + self.stdout.write('\n') + # self.stdout.write is better than "print", because Cmd can be + # initialized with a non-standard output destination + + do_say = do_speak # now "say" is a synonym for "speak" + do_orate = do_speak # another synonym, but this one takes multi-line input + +c = CmdLineApp() +c.cmdloop() diff --git a/example/exampleSession.txt b/example/exampleSession.txt new file mode 100644 index 0000000..795f4a6 --- /dev/null +++ b/example/exampleSession.txt @@ -0,0 +1,91 @@ +(Cmd) help + +Documented commands (type help <topic>): +======================================== +_load ed history list pause run set show +_relative_load edit l load py save shell speak +cmdenvironment hi li orate r say shortcuts + +Undocumented commands: +====================== +EOF eof exit help q quit + +(Cmd) help say +Repeats what you tell me to. +Usage: speak [options] (text to say) + +Options: + -h, --help show this help message and exit + -p, --piglatin atinLay + -s, --shout N00B EMULATION MODE + -r REPEAT, --repeat=REPEAT + output [n] times + +(Cmd) say goodnight, Gracie +goodnight, Gracie +(Cmd) say -ps --repeat=5 goodnight, Gracie +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +(Cmd) set +abbrev: True +case_insensitive: True +colors: True +continuation_prompt: > +debug: False +default_file_name: command.txt +echo: False +editor: /\w*/ +feedback_to_output: False +maxrepeats: 3 +prompt: (Cmd) +quiet: False +timing: False +(Cmd) set maxrepeats 5 +maxrepeats - was: 3 +now: 5 +(Cmd) say -ps --repeat=5 goodnight, Gracie +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +(Cmd) hi +-------------------------[1] +help +-------------------------[2] +help say +-------------------------[3] +say goodnight, Gracie +-------------------------[4] +say -ps --repeat=5 goodnight, Gracie +-------------------------[5] +set +-------------------------[6] +set maxrepeats 5 +-------------------------[7] +say -ps --repeat=5 goodnight, Gracie +(Cmd) run 4 +say -ps --repeat=5 goodnight, Gracie +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +OODNIGHT, GRACIEGAY +(Cmd) orate Four score and +> seven releases ago +> our BDFL +> +Four score and +seven releases ago +our BDFL +(Cmd) & look, a shortcut! +look, a shortcut! +(Cmd) say put this in a file > myfile.txt +(Cmd) say < myfile.txt +put this in a file +(Cmd) set prompt "---> " +prompt - was: (Cmd) +now: ---> +---> say goodbye +goodbye |