docs: def configure(cfgpath=None):
      """
      Configure lexibank.
  
      :return: a pair (config, logger)
      """
      cfgpath = Path(cfgpath) \
          if cfgpath else Path(user_config_dir(pylexibank.__name__)) / 'config.ini'
      if not cfgpath.exists():
          print("""
  {0}
  
  You seem to be running lexibank for the first time.
  Your system configuration will now be written to a config file to be used
  whenever lexibank is run lateron.
  """.format(
              colored('Welcome to lexibank!', 'blue', attrs=['bold', 'reverse'])))
          if not cfgpath.parent.exists():
              cfgpath.parent.mkdir(parents=True)
          cfg = Config()
          cfg['paths'] = {k: get_path(src) for k, src in REPOS}
          cfg.write(cfgpath)
          print("""
  Configuration has been written to:
  {0}
  You may edit this file to adapt to changes in your system or to reconfigure settings
  such as the logging level.""".format(cfgpath.resolve()))
      else:
          cfg = Config.from_file(cfgpath)
  
      try:
          cfg.glottolog
      except (FileNotFoundError, ValueError):
          raise ParserError('Misconfigured Glottolog path in {0}'.format(cfgpath))
      if not Path(cfg['paths']['concepticon']).exists():
          raise ParserError('Misconfigured Concepticon path in {0}'.format(cfgpath))
  
      # Print the configuration directory for reference:
      print("Using configuration file at:")
      print(str(cfgpath) + '\n')
      return cfg