17777dab0Sopenharmony_ci#!/usr/bin/env python 27777dab0Sopenharmony_ci# -*- coding: utf-8 -*- 37777dab0Sopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. 47777dab0Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 57777dab0Sopenharmony_ci# you may not use this file except in compliance with the License. 67777dab0Sopenharmony_ci# You may obtain a copy of the License at 77777dab0Sopenharmony_ci# 87777dab0Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 97777dab0Sopenharmony_ci# 107777dab0Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 117777dab0Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 127777dab0Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137777dab0Sopenharmony_ci# See the License for the specific language governing permissions and 147777dab0Sopenharmony_ci# limitations under the License. 157777dab0Sopenharmony_ci 167777dab0Sopenharmony_ciimport enum 177777dab0Sopenharmony_cifrom coreImpl.parser import parser 187777dab0Sopenharmony_cifrom coreImpl.check import check, check_syntax 197777dab0Sopenharmony_cifrom coreImpl.diff import diff 207777dab0Sopenharmony_ci 217777dab0Sopenharmony_ci 227777dab0Sopenharmony_ciclass ToolNameType(enum.Enum): 237777dab0Sopenharmony_ci COLLECT = 'collect' 247777dab0Sopenharmony_ci DIFF = 'diff' 257777dab0Sopenharmony_ci CHECK = 'check' 267777dab0Sopenharmony_ci COLLECT_H = 'collect_h' 277777dab0Sopenharmony_ci COLLECT_FILE = 'collect_file' 287777dab0Sopenharmony_ci CHECK_SYNTAX = 'check_syntax' 297777dab0Sopenharmony_ci 307777dab0Sopenharmony_ci 317777dab0Sopenharmony_citool_name_type_set = [ 327777dab0Sopenharmony_ci member.value for name_tool, 337777dab0Sopenharmony_ci member in ToolNameType.__members__.items() 347777dab0Sopenharmony_ci] 357777dab0Sopenharmony_ci 367777dab0Sopenharmony_ci 377777dab0Sopenharmony_ciclass FormatType(enum.Enum): 387777dab0Sopenharmony_ci JSON = 'json' 397777dab0Sopenharmony_ci EXCEL = 'excel' 407777dab0Sopenharmony_ci 417777dab0Sopenharmony_ci 427777dab0Sopenharmony_ciformat_set = [ 437777dab0Sopenharmony_ci member.value for name_format, 447777dab0Sopenharmony_ci member in FormatType.__members__.items() 457777dab0Sopenharmony_ci] 467777dab0Sopenharmony_ci 477777dab0Sopenharmony_ci 487777dab0Sopenharmony_cidef run_tools(options): 497777dab0Sopenharmony_ci tool_name = options.tool_name 507777dab0Sopenharmony_ci print(tool_name) 517777dab0Sopenharmony_ci if tool_name == ToolNameType["COLLECT"].value: 527777dab0Sopenharmony_ci parser.parser(options.parser_path) 537777dab0Sopenharmony_ci elif tool_name == ToolNameType["DIFF"].value: 547777dab0Sopenharmony_ci diff.process_dir(options.diff_path_old, options.diff_path_new, options.output_path) 557777dab0Sopenharmony_ci elif tool_name == ToolNameType["CHECK"].value: 567777dab0Sopenharmony_ci check.curr_entry(options.path, options.checker, options.output) 577777dab0Sopenharmony_ci elif tool_name == ToolNameType['COLLECT_H'].value: 587777dab0Sopenharmony_ci parser.parser_direct(options.parser_path, options.dependent_path) 597777dab0Sopenharmony_ci elif tool_name == ToolNameType['COLLECT_FILE'].value: 607777dab0Sopenharmony_ci parser.parser_file_level(options.output_path) 617777dab0Sopenharmony_ci elif tool_name == ToolNameType['CHECK_SYNTAX'].value: 627777dab0Sopenharmony_ci check_syntax.check_syntax_entrance(options.parser_path, options.dependent_path, options.output_path) 637777dab0Sopenharmony_ci else: 647777dab0Sopenharmony_ci print("工具名称错误") 657777dab0Sopenharmony_ci 667777dab0Sopenharmony_ci 677777dab0Sopenharmony_ciclass Config(object): 687777dab0Sopenharmony_ci name = 'parser' 697777dab0Sopenharmony_ci version = '0.1.0' 707777dab0Sopenharmony_ci description = 'Compare the parser the NDKS' 717777dab0Sopenharmony_ci commands = [ 727777dab0Sopenharmony_ci { 737777dab0Sopenharmony_ci "name": "--tool-name", 747777dab0Sopenharmony_ci "abbr": "-N", 757777dab0Sopenharmony_ci "required": False, 767777dab0Sopenharmony_ci "choices": tool_name_type_set, 777777dab0Sopenharmony_ci "type": str, 787777dab0Sopenharmony_ci "default": ToolNameType["CHECK"].value, 797777dab0Sopenharmony_ci "help": "工具名称,命令中不写-N的话,默认为check工具" 807777dab0Sopenharmony_ci }, 817777dab0Sopenharmony_ci { 827777dab0Sopenharmony_ci "name": "--parser-path", 837777dab0Sopenharmony_ci "abbr": "-P", 847777dab0Sopenharmony_ci "required": False, 857777dab0Sopenharmony_ci "type": str, 867777dab0Sopenharmony_ci "help": "解析路径" 877777dab0Sopenharmony_ci }, 887777dab0Sopenharmony_ci { 897777dab0Sopenharmony_ci "name": "--output-path", 907777dab0Sopenharmony_ci "abbr": "-O", 917777dab0Sopenharmony_ci "required": False, 927777dab0Sopenharmony_ci "type": str, 937777dab0Sopenharmony_ci "help": "工具输出文件路径" 947777dab0Sopenharmony_ci }, 957777dab0Sopenharmony_ci { 967777dab0Sopenharmony_ci "name": "--dependent-path", 977777dab0Sopenharmony_ci "abbr": "-D", 987777dab0Sopenharmony_ci "required": False, 997777dab0Sopenharmony_ci "type": str, 1007777dab0Sopenharmony_ci "help": "依赖文件路径" 1017777dab0Sopenharmony_ci }, 1027777dab0Sopenharmony_ci { 1037777dab0Sopenharmony_ci "name": "--codecheck--path", 1047777dab0Sopenharmony_ci "abbr": "--path", 1057777dab0Sopenharmony_ci "required": False, 1067777dab0Sopenharmony_ci "type": str, 1077777dab0Sopenharmony_ci "help": "codecheck解析文件路径" 1087777dab0Sopenharmony_ci }, 1097777dab0Sopenharmony_ci { 1107777dab0Sopenharmony_ci "name": "--check-command", 1117777dab0Sopenharmony_ci "abbr": "--checker", 1127777dab0Sopenharmony_ci "required": False, 1137777dab0Sopenharmony_ci "type": str, 1147777dab0Sopenharmony_ci "help": "校验命令" 1157777dab0Sopenharmony_ci }, 1167777dab0Sopenharmony_ci { 1177777dab0Sopenharmony_ci "name": "--check-output", 1187777dab0Sopenharmony_ci "abbr": "--output", 1197777dab0Sopenharmony_ci "required": False, 1207777dab0Sopenharmony_ci "type": str, 1217777dab0Sopenharmony_ci "help": "输出路径" 1227777dab0Sopenharmony_ci }, 1237777dab0Sopenharmony_ci { 1247777dab0Sopenharmony_ci "name": "--diff-path-old", 1257777dab0Sopenharmony_ci "abbr": "-old", 1267777dab0Sopenharmony_ci "required": False, 1277777dab0Sopenharmony_ci "type": str, 1287777dab0Sopenharmony_ci "help": "旧文件路径" 1297777dab0Sopenharmony_ci }, 1307777dab0Sopenharmony_ci { 1317777dab0Sopenharmony_ci "name": "--diff-path-new", 1327777dab0Sopenharmony_ci "abbr": "-new", 1337777dab0Sopenharmony_ci "required": False, 1347777dab0Sopenharmony_ci "type": str, 1357777dab0Sopenharmony_ci "help": "新文件路径" 1367777dab0Sopenharmony_ci } 1377777dab0Sopenharmony_ci 1387777dab0Sopenharmony_ci ] 139