'Run a touch plugin'

def do_touch(self, input):

    (argc, argv) = util.parseinput(input, 1)
    if (argc == 0):
        args = {'touchlist': [(t['displayname'], t['description'], t['name']) for t in self.get_active_plugin().getTouchList()]}
        self.io.print_touch_info(args)
    elif (argc == 1):
        if (argv[0].lower() == 'all'):
            index = None
        else:
            try:
                index = int(argv[0])
            except (IndexError, ValueError):
                raise exception.CmdErr, 'Bad    touch'
        plugin = self.get_active_plugin()
        try:
            if (index is None):
                for i in range(0, len(plugin.getTouchList())):
                    self.touch_single(plugin, i)
            else:
                self.touch_single(plugin, index)
        finally:
            self.fb.runcmd_noex(('enter    %s' % self.type))
    self.io.newline()
