summaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
authorZearin <zearin@gonk.net>2011-10-05 17:05:31 -0400
committerZearin <zearin@gonk.net>2011-10-05 17:05:31 -0400
commitaa19e3b9c9f03f7320c2d5470fa977ed0bbdeeab (patch)
tree97d86fe3a03114be08aac12a7097aa80ac03bc2a /example
downloadcmd2-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-xexample/example.py35
-rw-r--r--example/exampleSession.txt91
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