docs: def main(argv=None):
      """Main entry point for the cdstar CLI."""
      args = docopt(__doc__, version=pycdstar.__version__, argv=argv, options_first=True)
      subargs = [args['<command>']] + args['<args>']
  
      if args['<command>'] in ['help', None]:
          cmd = None
          if len(subargs) > 1:
              cmd = COMMANDS.get(subargs[1])
          if cmd:
              print(cmd.__doc__)
          else:
              print(__doc__)
          return 0
  
      cmd = COMMANDS.get(args['<command>'])
      if not cmd:
          print('unknown command')
          print(__doc__)
          return 0
  
      cfg = Config(**dict(
          cfg=args.pop('--cfg', None),
          url=args.pop('--service', None),
          user=args.pop('--user', None),
          password=args.pop('--password', None)))
  
      try:
          res = cmd(
              Cdstar(cfg=cfg),
              docopt(cmd.__doc__, argv=subargs),
              verbose=args.get('--verbose'))
          if isinstance(res, types.GeneratorType):
              res = list(res)
          if isinstance(res, list):
              for line in res:
                  print(line)
              res = 0
          return res or 0
      except:  # noqa: E722; # pragma: no cover
          # FIXME: log exception!
          return 256