MCPcopy Create free account
hub / github.com/FastLED/FastLED / main

Function main

ci/fix_has_include.py:209–270  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

207
208
209def main():
210 import argparse
211
212 parser = argparse.ArgumentParser(
213 description="Find and fix files using FL_HAS_INCLUDE without including fl/stl/has_include.h"
214 )
215 parser.add_argument(
216 "--fix",
217 action="store_true",
218 help="Automatically add missing includes (default: dry-run mode)",
219 )
220 parser.add_argument(
221 "--macro",
222 default="FL_HAS_INCLUDE",
223 help="Macro to search for (default: FL_HAS_INCLUDE)",
224 )
225 parser.add_argument(
226 "--include",
227 default="fl/stl/has_include.h",
228 help="Include path to check/add (default: fl/stl/has_include.h)",
229 )
230
231 args = parser.parse_args()
232
233 print(f"🔍 Searching for files using {args.macro}...")
234 files_with_macro = find_files_using_macro(args.macro)
235 print(f" Found {len(files_with_macro)} files using {args.macro}")
236
237 print(f"\n🔍 Checking which files include {args.include}...")
238 files_with_include = {
239 f for f in files_with_macro if check_has_include(f, args.include)
240 }
241 print(f" {len(files_with_include)} files already include {args.include}")
242
243 print(f"\n📊 Finding files missing the include...")
244 files_missing_include = files_with_macro - files_with_include
245
246 if not files_missing_include:
247 print(f" ✅ All files using {args.macro} include {args.include}!")
248 return 0
249
250 print(f" ⚠️ {len(files_missing_include)} files are missing the include:\n")
251
252 for file_path in sorted(files_missing_include):
253 relative = file_path.relative_to(PROJECT_ROOT)
254 print(f" • {relative}")
255
256 if args.fix:
257 print(f"\n🔧 Adding missing includes...")
258 fixed_count = 0
259 for file_path in sorted(files_missing_include):
260 relative = file_path.relative_to(PROJECT_ROOT)
261 print(f"\n {relative}:")
262 if add_include(file_path, args.include, dry_run=False):
263 fixed_count += 1
264
265 print(f"\n✅ Fixed {fixed_count}/{len(files_missing_include)} files")
266 return 0

Callers 1

fix_has_include.pyFile · 0.70

Calls 5

find_files_using_macroFunction · 0.85
check_has_includeFunction · 0.85
add_includeFunction · 0.85
parse_argsMethod · 0.80
printFunction · 0.50

Tested by

no test coverage detected