0a66d65a720c2f58614368f4ec0cf4d34ca0e986
[platform/core/csapi/tizenfx.git] / tools / scripts / CodeChecker / main.py
1 import sys
2 from BuildLog import BuildLog
3 from PRManager import PRManager
4
5 logPath = "./build.log"
6
7 if __name__ == "__main__":
8     if len(sys.argv) < 3:
9         print("Execute with token and the PR number")
10         print(" ~$ python main.py [Token] [PR Number]")
11         exit(1)
12     logs = BuildLog(logPath)
13     pr = PRManager(sys.argv[1], int(sys.argv[2]))
14     warningsInFile = []
15     for file in pr.changedFiles:
16         if file.patch is None:
17             continue
18         warningsInFile = [warning for warning in logs.warnings if file.filename.endswith(warning[logs.FILE])]
19
20         for diffLine in pr.fileDiffHunkPairs[file]:
21             for warning in warningsInFile:
22                 if (diffLine[0]) <= warning[BuildLog.LINE_NUMBER] and warning[BuildLog.LINE_NUMBER] < (diffLine[0] + diffLine[1]):
23                     print("{}, Warning on line {}! -> ".format(file.filename, warning[BuildLog.LINE_NUMBER]) + warning[BuildLog.MESSAGE])
24                     _warningMessage = warning[BuildLog.WARNING_CODE] + ":" +warning[BuildLog.MESSAGE]
25                     pr.CreateReviewComment(file, warning[BuildLog.LINE_NUMBER], _warningMessage)
26