code: def main(argv=None):
      
      signal.signal(
          signal.SIGINT,
          lambda *args: sys.exit(_SIGNAL_EXIT_CODE_BASE + signal.SIGINT))
  
      if hasattr(signal, 'SIGINFO'):
          signal.signal(
              getattr(signal, 'SIGINFO'),
              lambda *args: report_progress(sys.stderr))
  
      try:
          return docopt_subcommands.main(
              commands=dsc,
              argv=argv,
              doc_template=DOC_TEMPLATE,
              exit_at_end=False)
      except docopt.DocoptExit as exc:
          print(exc, file=sys.stderr)
          return ExitCode.USAGE
      except FileNotFoundError as exc:
          print(exc, file=sys.stderr)
          return ExitCode.NO_INPUT
      except PermissionError as exc:
          print(exc, file=sys.stderr)
          return ExitCode.NO_PERM
      except cosmic_ray.config.ConfigError as exc:
          print(repr(exc), file=sys.stderr)
          if exc.__cause__ is not None:
              print(exc.__cause__, file=sys.stderr)
          return ExitCode.CONFIG
      except subprocess.CalledProcessError as exc:
          print('Error in subprocess', file=sys.stderr)
          print(exc, file=sys.stderr)
          return exc.returncode
docs: Invoke the cosmic ray evaluation.
  
      :param argv: the command line arguments