Movatterモバイル変換


[0]ホーム

URL:


Google Git
Sign in
chromium /external /github.com /python /cpython /refs/tags/v1.0.1 /. /Lib /cmd.py
blob: 87ddcfa7e72aa2ea9e04d3962156a83124890675 [file] [log] [blame]
# A generic class to build line-oriented command interpreters
import string
import sys
import linecache
PROMPT='(Cmd) '
IDENTCHARS= string.letters+ string.digits+'_'
classCmd:
def __init__(self):
self.prompt= PROMPT
self.identchars= IDENTCHARS
self.lastcmd=''
def cmdloop(self):
stop=None
whilenot stop:
try:
line= raw_input(self.prompt)
exceptEOFError:
line='EOF'
stop= self.onecmd(line)
def onecmd(self, line):
line= string.strip(line)
ifnot line:
line= self.lastcmd
else:
self.lastcmd= line
i, n=0, len(line)
while i< nand line[i]in self.identchars: i= i+1
cmd, arg= line[:i], string.strip(line[i:])
if cmd=='':
return self.default(line)
else:
try:
func= getattr(self,'do_'+ cmd)
exceptAttributeError:
return self.default(line)
return func(arg)
def default(self, line):
print'*** Unknown syntax:', line
def do_help(self, arg):
if arg:
# XXX check arg syntax
try:
func= getattr(self,'help_'+ arg)
except:
print'*** No help on',`arg`
return
func()
else:
import newdir
names= newdir.dir(self.__class__)
cmds=[]
for namein names:
if name[:3]=='do_':
cmds.append(name[3:])
print cmds

[8]ページ先頭

©2009-2025 Movatter.jp