ソースを参照

utils/checkpackagelib: CommentsMenusPackagesOrder: use regex for source

The 'source' strings identify which package is incorrectly ordered. We
need to extract the actual package name from that string, which is
currently done with constants that assume the file is package/Config.in.

In addition, only 'source' lines that are indented with a tab are
checked. This kind of indentation is done in package/Config.in, but not
e.g. boot/Config.in.

Therefore, use a regular expression to match the 'source' lines, and to
extract the directory part from it.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Arnout Vandecappelle (Essensium/Mind) 6 年 前
コミット
0a4e1fc054
1 ファイル変更3 行追加2 行削除
  1. 3 2
      utils/checkpackagelib/lib_config.py

+ 3 - 2
utils/checkpackagelib/lib_config.py

@@ -77,6 +77,7 @@ class CommentsMenusPackagesOrder(_CheckFunction):
                                  "package/Config.in.host"]:
                                  "package/Config.in.host"]:
             return
             return
 
 
+        m = re.match(r'^\s*source ".*/([^/]*)/Config.in(.host)?"', text)
         if text.startswith("comment ") or text.startswith("if ") or \
         if text.startswith("comment ") or text.startswith("if ") or \
            text.startswith("menu "):
            text.startswith("menu "):
 
 
@@ -112,9 +113,9 @@ class CommentsMenusPackagesOrder(_CheckFunction):
             elif text.startswith("endmenu"):
             elif text.startswith("endmenu"):
                 self.state = self.state[:-5]
                 self.state = self.state[:-5]
 
 
-        elif text.startswith('\tsource "package/'):
+        elif m:
             level = self.get_level()
             level = self.get_level()
-            new_package = text[17: -(len(self.filename)-5):]
+            new_package = m.group(1)
 
 
             # We order _ before A, so replace it with .
             # We order _ before A, so replace it with .
             new_package_ord = new_package.replace('_', '.')
             new_package_ord = new_package.replace('_', '.')