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

Function find_platformio_project_dir

ci/ci-cppcheck.py:41–81  ·  view source on GitHub ↗

Find a directory containing platformio.ini file for the specified board. Handles multiple build directory structures: Modern: .build/pio/uno/Blink/platformio.ini Legacy: .build/fled/examples/uno/Blink/platformio.ini Old: .build/uno/Blink/platformio.ini Returns the directory con

(build_root: Path, board_name: str)

Source from the content-addressed store, hash-verified

39
40
41def find_platformio_project_dir(build_root: Path, board_name: str) -> Path | None:
42 """Find a directory containing platformio.ini file for the specified board.
43
44 Handles multiple build directory structures:
45 Modern: .build/pio/uno/Blink/platformio.ini
46 Legacy: .build/fled/examples/uno/Blink/platformio.ini
47 Old: .build/uno/Blink/platformio.ini
48
49 Returns the directory containing platformio.ini, or None if not found.
50 """
51 if not build_root.exists():
52 return None
53
54 # Search patterns for different build structures
55 search_patterns = [
56 # Modern PlatformIO structure: .build/pio/{board}/**/*.ini
57 build_root / "pio" / board_name,
58 # Legacy structure: .build/fled/examples/{board}/**/*.ini
59 build_root / "fled" / "examples" / board_name,
60 # Old structure: .build/{board}/**/*.ini
61 build_root / board_name,
62 ]
63
64 # Try each search pattern
65 for base_dir in search_patterns:
66 if not base_dir.exists():
67 continue
68
69 # Look for platformio.ini in this directory and its subdirectories
70 project_dir = find_platformio_ini_in_tree(base_dir)
71 if project_dir:
72 return project_dir
73
74 # Last resort: search the entire build directory for board-related platformio.ini
75 for platformio_ini in build_root.rglob("platformio.ini"):
76 # Check if this platformio.ini is for our board by looking at the path
77 if board_name in str(platformio_ini):
78 print(f"Found platformio.ini in {platformio_ini.parent}")
79 return platformio_ini.parent
80
81 return None
82
83
84def find_platformio_ini_in_tree(base_dir: Path) -> Path | None:

Callers 1

mainFunction · 0.70

Calls 2

printFunction · 0.50

Tested by

no test coverage detected