|
@@ -134,48 +134,49 @@ def load_include_rules(fname):
|
|
result.addPattern(line)
|
|
result.addPattern(line)
|
|
return result
|
|
return result
|
|
|
|
|
|
-list_unused = False
|
|
+if __name__ == '__main__':
|
|
-log_sorted_levels = False
|
|
+ list_unused = False
|
|
-
|
|
+ log_sorted_levels = False
|
|
-uses_dirs = { }
|
|
+
|
|
-
|
|
+ uses_dirs = { }
|
|
-for dirpath, dirnames, fnames in os.walk("src"):
|
|
+
|
|
- if ".may_include" in fnames:
|
|
+ for dirpath, dirnames, fnames in os.walk("src"):
|
|
- rules = load_include_rules(os.path.join(dirpath, RULES_FNAME))
|
|
+ if ".may_include" in fnames:
|
|
- for fname in fnames:
|
|
+ rules = load_include_rules(os.path.join(dirpath, RULES_FNAME))
|
|
- if fname_is_c(fname):
|
|
+ for fname in fnames:
|
|
- rules.applyToFile(os.path.join(dirpath,fname))
|
|
+ if fname_is_c(fname):
|
|
- if list_unused:
|
|
+ rules.applyToFile(os.path.join(dirpath,fname))
|
|
- rules.noteUnusedRules()
|
|
+ if list_unused:
|
|
-
|
|
+ rules.noteUnusedRules()
|
|
- uses_dirs[rules.incpath] = rules.getAllowedDirectories()
|
|
+
|
|
-
|
|
+ uses_dirs[rules.incpath] = rules.getAllowedDirectories()
|
|
-if trouble:
|
|
+
|
|
- err(
|
|
+ if trouble:
|
|
-"""To change which includes are allowed in a C file, edit the {}
|
|
+ err(
|
|
-files in its enclosing directory.""".format(RULES_FNAME))
|
|
+ """To change which includes are allowed in a C file, edit the {}
|
|
- sys.exit(1)
|
|
+ files in its enclosing directory.""".format(RULES_FNAME))
|
|
-
|
|
+ sys.exit(1)
|
|
-all_levels = []
|
|
+
|
|
-
|
|
+ all_levels = []
|
|
-n = 0
|
|
+
|
|
-while uses_dirs:
|
|
+ n = 0
|
|
- n += 0
|
|
+ while uses_dirs:
|
|
- cur_level = []
|
|
+ n += 0
|
|
- for k in list(uses_dirs):
|
|
+ cur_level = []
|
|
- uses_dirs[k] = [ d for d in uses_dirs[k]
|
|
+ for k in list(uses_dirs):
|
|
- if (d in uses_dirs and d != k)]
|
|
+ uses_dirs[k] = [ d for d in uses_dirs[k]
|
|
- if uses_dirs[k] == []:
|
|
+ if (d in uses_dirs and d != k)]
|
|
- cur_level.append(k)
|
|
+ if uses_dirs[k] == []:
|
|
- for k in cur_level:
|
|
+ cur_level.append(k)
|
|
- del uses_dirs[k]
|
|
+ for k in cur_level:
|
|
- n += 1
|
|
+ del uses_dirs[k]
|
|
- if cur_level and log_sorted_levels:
|
|
+ n += 1
|
|
- print(n, cur_level)
|
|
+ if cur_level and log_sorted_levels:
|
|
- if n > 100:
|
|
+ print(n, cur_level)
|
|
- break
|
|
+ if n > 100:
|
|
-
|
|
+ break
|
|
-if uses_dirs:
|
|
+
|
|
- print("There are circular .may_include dependencies in here somewhere:",
|
|
+ if uses_dirs:
|
|
- uses_dirs)
|
|
+ print("There are circular .may_include dependencies in here somewhere:",
|
|
- sys.exit(1)
|
|
+ uses_dirs)
|
|
|
|
+ sys.exit(1)
|