diff options
author | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-03-16 15:48:42 +0900 |
---|---|---|
committer | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-03-16 15:48:42 +0900 |
commit | 5238f3d5df712068e905be5b59cd765d56b9af39 (patch) | |
tree | 80775c149bbc1324d4f432316d51a9994c724ba3 | |
parent | 3a71caf05b827b65be1587b463448ddfc8457574 (diff) | |
download | building-blocks-5238f3d5df712068e905be5b59cd765d56b9af39.tar.gz building-blocks-5238f3d5df712068e905be5b59cd765d56b9af39.tar.bz2 building-blocks-5238f3d5df712068e905be5b59cd765d56b9af39.zip |
RULE: add rule 1-9. error report format added
Change-Id: I853d32187ab7697daa9f7dbb71321acae72a35d5
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
-rw-r--r-- | RULES | 2 | ||||
-rwxr-xr-x | rule_checker.py | 25 |
2 files changed, 26 insertions, 1 deletions
@@ -28,6 +28,8 @@ 1-8. In order to implement "radio-button" UI (choose only one), the block name starts with "chooseonlyone_" E.g., "building-blocks-root-chooseonlyone_Kernel" +1-9. [NAME] = [a-zA-Z0-9_]+ + =========================================================================== diff --git a/rule_checker.py b/rule_checker.py index e17f6d0..539ee8a 100755 --- a/rule_checker.py +++ b/rule_checker.py @@ -16,10 +16,13 @@ import os import os.path import sys +def report(file, lc, code): + print(file + ":Line " + str(lc) + " |"+code) def ruleCheckInc(file): error = 0 warning = 0 + lc = 0 try: f = open("packaging/"+file, 'r') @@ -28,6 +31,7 @@ def ruleCheckInc(file): print("WARNING: cannot find packaging/"+file) return (0, 1) for line in f: + lc += 1 # RULE 5.1 if re.search('^\s*BuildRequires', line, re.IGNORECASE): error += 1 @@ -38,6 +42,7 @@ def ruleCheckInc(file): if re.search('^#.*[^%]%[^%]', line) and not re.search('^#!', line): error += 1 print("ERROR: unless it is shebang, you must not have rpm macro in a # comment. They are expanded and multiline macro will do unexpected effects.") + report(file, lc, line) continue # RULE 5.2 @@ -47,21 +52,39 @@ def ruleCheckInc(file): re.search('^\s*Supplements', line, re.IGNORECASE): error += 1 print("ERROR: RULE 5.2 .inc file cannot have unsupported relations") + report(file, lc, line) + continue # RULE 1-1 if re.search('^\s*%package\s*-n', line, re.IGNORECASE): error += 1 print("ERROR: RULE 1.1 to ensure 1.1, do not use -n option in package name") + report(file, lc, line) + continue # Implicit / General Rule if re.search('^\s*%package\s', line, re.IGNORECASE) and not re.search('^\s*%package\s', line): error += 1 print('ERROR: (General) Please use %package, not '+re.search('^%package')) + report(file, lc, line) + continue - # RULE 1-3 + # RULE 1-3 / 1-4 if re.search('^\s*%package', line) and not re.search('^\s*%package\s*(root)|(sub1)|(sub2)', line): error +=1 print("ERROR: RULE 1.3 the send prefix should be root, sub1, or sub2.") + report(file, lc, line) + continue + + # RULE 1-5 + 1-9 / there is - in the name + if re.search('^\s*%package\s*root', line) and \ + not re.search('^\s*%package\s*root-[a-zA-Z0-9_]*\s*$', line): + error += 1 + print("ERROR: RULE 1.9 not met with root (RULE 1.5)") + report(file, lc, line) + continue + + |