Util: Do not style check symlinks
authorJoel Hestness <jthestness@gmail.com>
Tue, 10 Jun 2014 03:01:18 +0000 (22:01 -0500)
committerJoel Hestness <jthestness@gmail.com>
Tue, 10 Jun 2014 03:01:18 +0000 (22:01 -0500)
The style checker used to traverse symlinks if they pointed to files, which can
result in style checker failure if the pointed-to file doesn't exist. This
style check is actually unnecessary, since symlinks either point to other files
that are already style checked, or files outside gem5, which shouldn't be
checked. Skip symlinks.

util/style.py

index f1f64689f1bc141ad124cdf766d285b8c7c945ee..08c127765e50ddfbe85adebcb7a27401fe55894d 100644 (file)
@@ -149,6 +149,13 @@ class Verifier(object):
         return f
 
     def skip(self, filename):
+        # We never want to handle symlinks, so always skip them: If the location
+        # pointed to is a directory, skip it. If the location is a file inside
+        # the gem5 directory, it will be checked as a file, so symlink can be
+        # skipped. If the location is a file outside gem5, we don't want to
+        # check it anyway.
+        if os.path.islink(filename):
+            return True
         return lang_type(filename) not in self.languages
 
     def check(self, filename, regions=all_regions):
@@ -384,6 +391,13 @@ def do_check_style(hgui, repo, *files, **args):
         files = frozenset(files)
 
     def skip(name):
+        # We never want to handle symlinks, so always skip them: If the location
+        # pointed to is a directory, skip it. If the location is a file inside
+        # the gem5 directory, it will be checked as a file, so symlink can be
+        # skipped. If the location is a file outside gem5, we don't want to
+        # check it anyway.
+        if os.path.islink(name):
+            return True
         return files and name in files
 
     def prompt(name, func, regions=all_regions):