def parse_args(self, argv): from argparse import ArgumentParser # FIXME: # CCPlugin should not parse any argument. Plugins are responsoble for doing it parser = ArgumentParser(prog="cocos %s" % self.__class__.plugin_name(), description=self.__class__.brief_description()) parser.add_argument("-s", "--src", dest="src_dir", help=MultiLanguage.get_string('COCOS_HELP_ARG_SRC')) parser.add_argument("-q", "--quiet", action="store_true", dest="quiet", help=MultiLanguage.get_string('COCOS_HELP_ARG_QUIET')) platform_list = cocos_project.Platforms.list_for_display() parser.add_argument("-p", "--platform", dest="platform", help=MultiLanguage.get_string('COCOS_HELP_ARG_PLATFORM')) parser.add_argument("--list-platforms", action="store_true", dest="listplatforms", help=_("List available platforms")) parser.add_argument("--proj-dir", dest="proj_dir", help=MultiLanguage.get_string('COCOS_HELP_ARG_PROJ_DIR')) self._add_custom_options(parser) (args, unkonw) = parser.parse_known_args(argv) if args.src_dir is None: self._project = cocos_project.Project(os.path.abspath(os.getcwd())) else: self._project = cocos_project.Project( os.path.abspath(args.src_dir)) args.src_dir = self._project.get_project_dir() if args.src_dir is None: raise CCPluginError(MultiLanguage.get_string('COCOS_ERROR_PROJECT_NOT_FOUND'), CCPluginError.ERROR_WRONG_ARGS) if args.platform: args.platform = args.platform.lower() if args.platform not in platform_list: raise CCPluginError(MultiLanguage.get_string('COCOS_ERROR_UNKNOWN_PLATFORM_FMT', args.platform), CCPluginError.ERROR_WRONG_ARGS) if args.listplatforms and self._project is not None: platforms = cocos_project.Platforms(self._project, args.platform, args.proj_dir) p = platforms.get_available_platforms().keys() print('{"platforms":' + json.dumps(p) + '}') sys.exit(0) self.init(args) self._check_custom_options(args)
def init(self, args): self._verbose = (not args.quiet) self._platforms = cocos_project.Platforms(self._project, args.platform, args.proj_dir) if self._platforms.none_active(): self._platforms.select_one()