docs: def parse_args(cls):
          """Main argument parser of Laniakea.
          """
          # Initialize configuration and userdata directories.
          dirs = appdirs.AppDirs(__title__, 'Mozilla Security')
          if not os.path.isdir(dirs.user_config_dir):
              shutil.copytree(os.path.join(cls.HOME, 'examples'), dirs.user_config_dir)
              shutil.copytree(os.path.join(cls.HOME, 'userdata'), os.path.join(dirs.user_config_dir, 'userdata'))
  
          parser = argparse.ArgumentParser(
              description='Laniakea Runtime v{}'.format(cls.VERSION),
              prog=__title__,
              add_help=False,
              formatter_class=lambda prog: argparse.ArgumentDefaultsHelpFormatter(prog, max_help_position=40, width=120),
              epilog='The exit status is 0 for non-failures and 1 for failures.')
  
          subparsers = parser.add_subparsers(dest='provider',
                                             description='Use -h to see the help menu of each provider.',
                                             title='Laniakea Cloud Providers',
                                             metavar='')
  
          modules = ModuleLoader()
          modules.load(cls.HOME, 'core/providers', 'laniakea')
  
          for name, module in modules.modules.items():
              globals()[name] = module
  
          for module, cli in modules.command_line_interfaces():
              getattr(module, cli).add_arguments(subparsers, dirs)
  
          base = parser.add_argument_group('Laniakea Base Parameters')
          base.add_argument('-verbosity',
                            default=2,
                            type=int,
                            choices=list(range(1, 6, 1)),
                            help='Log sensitivity.')
  
          base.add_argument('-focus',
                            action='store_true',
                            default=True,
                            help=argparse.SUPPRESS)
  
          base.add_argument('-settings',
                            metavar='path',
                            type=argparse.FileType(),
                            default=os.path.join(dirs.user_config_dir, 'laniakea.json'),
                            help='Laniakea core settings.')
  
          base.add_argument('-h', '-help', '--help',
                            action='help',
                            help=argparse.SUPPRESS)
  
          base.add_argument('-version',
                            action='version',
                            version='%(prog)s {}'.format(cls.VERSION),
                            help=argparse.SUPPRESS)
  
          userdata = parser.add_argument_group('UserData Parameters')
          userdata.add_argument('-userdata',
                                metavar='path',
                                type=argparse.FileType(),
                                help='UserData script for the provisioning process.')
  
          userdata.add_argument('-list-userdata-macros',
                                action='store_true',
                                help='List available macros.')
  
          userdata.add_argument('-print-userdata',
                                action='store_true',
                                help='Print the UserData script to stdout.')
  
          userdata.add_argument('-userdata-macros',
                                metavar='k=v',
                                nargs='+',
                                type=str,
                                help='Custom macros for the UserData.')
  
          return parser.parse_args()