docs: def main(cls):
          """
          fuzzfetch main entry point
  
          Run with --help for usage
          """
          log_level = logging.INFO
          log_fmt = '[%(asctime)s] %(message)s'
          if bool(os.getenv('DEBUG')):
              log_level = logging.DEBUG
              log_fmt = '%(levelname).1s %(name)s [%(asctime)s] %(message)s'
          logging.basicConfig(format=log_fmt, datefmt='%Y-%m-%d %H:%M:%S', level=log_level)
          logging.getLogger('requests').setLevel(logging.WARNING)
  
          obj, extract_args = cls.from_args()
  
          LOG.info('Identified task: %s', obj.task_url)
          LOG.info('> Task ID: %s', obj.task_id)
          LOG.info('> Rank: %s', obj.rank)
          LOG.info('> Changeset: %s', obj.changeset)
          LOG.info('> Build ID: %s', obj.build_id)
  
          if extract_args['dry_run']:
              return
  
          out = extract_args['out']
          os.mkdir(out)
  
          try:
              obj.extract_build(out, tests=extract_args['tests'], full_symbols=extract_args['full_symbols'])
              os.makedirs(os.path.join(out, 'download'))
              with open(os.path.join(out, 'download', 'firefox-temp.txt'), 'a') as dl_fd:
                  dl_fd.write('buildID=' + obj.build_id + os.linesep)
          except:  # noqa
              if os.path.isdir(out):
                  junction_path.rmtree(out)
              raise