cloc是一款代码统计工具,可以统计代码中各类语言代码行、注释行、空白行的情况。该工程以容器方式,对cloc工具进行封装,并定义标准输入和输出。从而保证CodeCC平台数据解析模版化。
docker: 镜像打包文件Dockerfile路径
sdk:适配工具脚步路径
tool:工具二进制路径
cloc:1.82
打包命令:docker build -t cloc_scan:latest -f ./docker/Dockerfile .
{"projName":"CODECC_E62163C1E8070479","projectId":"CODE_186495","scanPath":"/data/iegci/test_tool/test_code/clouddriver","whitePathList":["/data/iegci/test_tool/test_code/clouddriver"],"scanType":"full","skipPaths":["./\.svn/.","./\.git/.","./\.temp/.","./pinpoint_piggy/."],"incrementalFiles":[]}
| 字段名 | 说明 | 举例 |
|---|---|---|
| projName | 项目名称 | DEVOPS_214A69F1F4F935DE |
| scanPath | 待扫描的路径,此处需使用绝对路径 | /data/project/code |
| whitePathList | 指定扫描路径列表(白名单) | /data/project/code/src |
| scanType | 进行全量或增量检查 | full或increment |
| skipPaths | 屏蔽路径正则表达式列表(黑名单) | [".*/demo/.*", ".*/protobuf/.*"] |
| incrementalFiles | 增量扫描的文件清单,清单为空表示全量扫描 | ["/data/project/code/src/main.py", "/data/project/code/src/test.py"]] |
docker run -it cloc_scan:latest /bin/bash -c "cd /usr/codecc/tool_scan; python3 ./sdk/src/scan.py --input=/data/input.json --output=/data/output.json"
{"defects":[{"blank":6,"code":17,"comment":15,"filePath":"/data/iegci/test_tool/test_code/client/test.java","language":"Java"}],"languages":"Java","tool_name":"cloc"}
| 字段名 | 说明 |
|---|---|
| defects | 告警列表 |
| filePath | 文件路径 |
| blank | 空白行数 |
| code | 有效行数 |
| comment | 注释行数 |
| language | 代码语言 |
| languages | 语言列表 |
| tool_name | 工具名称 |
以下为语言对应数字,如果项目存在多语言,则数字相加:
| 数字 | 对应语言 |
|---|---|
| 1 | cs |
| 2 | cpp |
| 4 | java |
| 8 | php |
| 16 | objectivec |
| 32 | python |
| 64 | js |
| 128 | ruby |
| 512 | go |
| 1024 | swift |
| 4096 | kotlin |