docs: def main():
      """ Handle command line execution. """
      parser = argparse.ArgumentParser(prog='panasonic_viera',
                      description='Remote control a Panasonic Viera TV.')
      parser.add_argument('host', metavar='host', type=str,
                      help='Address of the Panasonic Viera TV')
      parser.add_argument('port', metavar='port', type=int, nargs='?',
                      default=panasonic_viera.DEFAULT_PORT,
                      help='Port of the Panasonic Viera TV. Defaults to {}.'.format(panasonic_viera.DEFAULT_PORT))
      parser.add_argument('--verbose', dest='verbose', action='store_const',
                      const=True, default=False,
                      help='debug output')
      args = parser.parse_args()
  
      if args.verbose:
          logging.basicConfig(level=logging.DEBUG)
  
      remote_control = RemoteControl(panasonic_viera.RemoteControl(args.host, args.port))
      runner = CommandRunner()
      runner.command('open_webpage', remote_control.open_webpage)
      runner.command('get_volume', remote_control.get_volume)
      runner.command('set_volume', remote_control.set_volume)
      runner.command('get_mute', remote_control.get_mute)
      runner.command('set_mute', remote_control.set_mute)
      runner.command('turn_off', remote_control.turn_off)
      runner.command('volume_up', remote_control.volume_up)
      runner.command('volume_down', remote_control.volume_down)
      runner.command('mute_volume', remote_control.mute_volume)
      runner.command('turn_off', remote_control.turn_off)
      runner.command('turn_on', remote_control.turn_on)
      runner.command('send_key', remote_control.send_key)
      return Console(runner).run()