解析命令行参数 :return:
()
| 22 | """ |
| 23 | @staticmethod |
| 24 | def parse_args(): |
| 25 | """解析命令行参数 |
| 26 | |
| 27 | :return: |
| 28 | """ |
| 29 | argparser = argparse.ArgumentParser(add_help=True) |
| 30 | argparser.add_argument('-v', '--version', action='version', |
| 31 | version=f"CodeAnalysis Version {settings.VERSION}({settings.EDITION.name} Beta)", |
| 32 | help="显示版本号") |
| 33 | argparser.add_argument("-l", "--log-file", dest='log_file', help="指定log文件路径") |
| 34 | subparsers = argparser.add_subparsers(dest='command', help="Commands") |
| 35 | |
| 36 | # localscan命令 |
| 37 | localscan_parser = subparsers.add_parser('localscan', help="执行本地项目扫描") |
| 38 | localscan_parser.add_argument("-t", "--token", dest='token', type=str, help="个人Token,在代码分析网站获取") |
| 39 | localscan_parser.add_argument("--org-sid", dest="org_sid", help="团队编号,在代码分析网站获取") |
| 40 | localscan_parser.add_argument("--team-name", dest="team_name", help="项目名称,在代码分析网站获取") |
| 41 | localscan_parser.add_argument("-s", "--source-dir", dest="source_dir", type=str, help="本地代码目录") |
| 42 | localscan_parser.add_argument("--total", dest="total_scan", action="store_true", |
| 43 | help="指定本次为全量扫描,不指定该参数时默认为增量扫描") |
| 44 | localscan_parser.add_argument("--language", dest="language", type=str, help="代码语言类型,可以指定多门语言,用英文逗号(,)分隔") |
| 45 | localscan_parser.add_argument("--scan-plan", dest="scan_plan", type=str, |
| 46 | help="扫描方案名称,如果当前代码库已存在该名称的方案,直接使用;否则会新建该名称的方案") |
| 47 | localscan_parser.add_argument("--ref-scheme-id", dest="ref_scheme_id", type=int, |
| 48 | help="参照扫描方案ID,新建项目时复制指定ID的扫描方案使用,达到多个代码仓库使用相同的扫描方案的效果") |
| 49 | localscan_parser.add_argument("--branch", dest="branch", type=str, help="指定本地扫描的git代码库分支名称") |
| 50 | localscan_parser.add_argument("--scan-path", dest="scan_path", type=str, |
| 51 | help="填写子目录的相对路径,指定某个子目录作为当前项目的扫描目录,适用于大仓场景,只针对某个业务目录进行扫描。默认扫描整个代码仓库") |
| 52 | localscan_parser.add_argument("--exclude", dest="exclude_paths", type=str, |
| 53 | help="需要过滤的目录或文件(相对路径),多个路径用英文逗号(,)分隔,路径格式遵循python fnmatch语法") |
| 54 | localscan_parser.add_argument("--compare-branch", dest="compare_branch", type=str, |
| 55 | help="对比分支,过滤掉从对比分支引入的历史代码问题,用于MR场景,一般设置为MR目标分支") |
| 56 | localscan_parser.add_argument("--include", dest="include_paths", type=str, |
| 57 | help="指定只扫描的目录或文件(相对路径),多个路径用英文逗号(,)分隔,路径格式遵循python fnmatch语法") |
| 58 | localscan_parser.add_argument("--pre-cmd", dest="pre_cmd", type=str, help="前置命令(需要前置操作时使用)") |
| 59 | localscan_parser.add_argument("--build-cmd", dest="build_cmd", type=str, help="编译命令(扫描编译型语言时使用)") |
| 60 | localscan_parser.add_argument("--username", dest="username", type=str, help="代码库用户名") |
| 61 | localscan_parser.add_argument("--password", dest="password", type=str, help="代码库密码") |
| 62 | localscan_parser.add_argument("--ssh", dest="ssh_file", type=str, help="ssh私钥文件路径") |
| 63 | localscan_parser.add_argument("-c", "--config-file", dest='config_file', type=str, help="项目配置文件") |
| 64 | localscan_parser.add_argument("--report", dest="report_file", type=str, |
| 65 | help="指定输出扫描结果简报的文件路径(json格式),默认输出在软件工作目录下的scan_status.json文件") |
| 66 | localscan_parser.add_argument("--server", dest="server_url", type=str, help="指定连接的服务器url") |
| 67 | localscan_parser.add_argument("--start-type", dest='start_type', type=str, help="启动方式,可选值:CI,分别表示CI场景") |
| 68 | |
| 69 | # updatetool命令 |
| 70 | updatetool_parser = subparsers.add_parser('updatetool', help="拉取工具") |
| 71 | updatetool_parser.add_argument('-t', '--tool', dest='tool', type=str, help="更新指定工具,可以指定多个工具,用英文逗号(,)分隔") |
| 72 | updatetool_parser.add_argument('-a', '--all', dest='all_tools', action="store_true", help="更新全量工具") |
| 73 | updatetool_parser.add_argument('-o', '--os', dest='os_type', type=str, choices=['mac', 'linux', 'windows'], |
| 74 | help="拉取指定操作系统下的工具") |
| 75 | |
| 76 | # start命令 |
| 77 | start_parser = subparsers.add_parser('start', help="启动节点") |
| 78 | start_parser.add_argument("-t", "--token", dest='token', type=str, help="个人token,在代码分析网站获取", required=True) |
| 79 | start_parser.add_argument("--org-sid", dest="org_sid", help="团队编号,在代码分析网站获取。指定注册为团队的节点,不指定则为公共节点") |
| 80 | start_parser.add_argument("--tag", dest="tag", help="机器标签") |
| 81 | start_parser.add_argument("--create-from", dest="create_from", type=str, help="客户端节点启动渠道") |
no outgoing calls
no test coverage detected