#VendingMachineCommander.py
import cmd, cStringIO
import VendingMachineParser

def defaultHandler(cmds):
    for cmd in cmds:
        print cmd

class Commander(cmd.Cmd):
    normalPrompt = ': '

    def __init__(self,handler=defaultHandler):
        cmd.Cmd.__init__(self)
        self.timeToQuit = 0
        self.prompt = self.normalPrompt
        self.parser = VendingMachineParser.Parser()
        self.doc_header = "Type 'help <topic>' for info on:"
        self.intro = 'Welcome to Vending Machine Simulator!\n'\
                     "Enter a command or type 'help'"
        self.misc_header = ''
        self.undoc_header = ''
        self.handler = handler


    def default(self,line):
        'Called on normal commands'
        cmds = self.parser.parse(aString=line,aName='Console')
        self.handler(cmds)

    def do_quit(self,line):
        self.timeToQuit = 1

    def postcmd(self,stop,line):
        if self.timeToQuit:
            return 1
        return stop

    def help_help(self): print 'I need help!'
    def help_quit(self): print 'Duh.'
    def help_put(self):
        print 'put <10 | 50 | 100 | '\
              '500 | 1000>'
        print 'put a coin or a paper into the slot'

    def help_push(self):
        print 'push <white | black | sugarwhite | sugarblack>'
        print 'push a button on the front panel'

    def help_include(self):
        print 'include "file"\nExecutes the contents of a file'

if __name__ == '__main__':
    c = Commander()
    c.cmdloop()


Retrieved from http://wiki.zeropage.org/wiki.php/Temp/Commander
last modified 2021-02-07 05:28:10