Command-line interface for package validator.
()
| 189 | |
| 190 | |
| 191 | def main() -> int: |
| 192 | """Command-line interface for package validator.""" |
| 193 | import argparse |
| 194 | |
| 195 | parser = argparse.ArgumentParser(description="Validate PlatformIO packages") |
| 196 | parser.add_argument( |
| 197 | "--package-dir", |
| 198 | type=Path, |
| 199 | help="Validate specific package directory", |
| 200 | ) |
| 201 | parser.add_argument( |
| 202 | "--project-dir", |
| 203 | type=Path, |
| 204 | help="PlatformIO project directory", |
| 205 | ) |
| 206 | parser.add_argument( |
| 207 | "--environment", |
| 208 | help="PlatformIO environment to check", |
| 209 | ) |
| 210 | |
| 211 | args = parser.parse_args() |
| 212 | |
| 213 | if args.package_dir: |
| 214 | is_valid, error_msg = validate_package(args.package_dir) |
| 215 | if is_valid: |
| 216 | print(f"✅ Package {args.package_dir.name} is valid") |
| 217 | return 0 |
| 218 | else: |
| 219 | print(f"❌ {error_msg}") |
| 220 | return 1 |
| 221 | |
| 222 | if args.project_dir and args.environment: |
| 223 | is_valid, errors = check_all_packages(args.project_dir, args.environment) |
| 224 | if is_valid: |
| 225 | print(f"✅ All packages for {args.environment} are valid") |
| 226 | return 0 |
| 227 | else: |
| 228 | print(f"❌ Found {len(errors)} package errors:") |
| 229 | for error in errors: |
| 230 | print(f" - {error}") |
| 231 | return 1 |
| 232 | |
| 233 | parser.print_help() |
| 234 | return 1 |
| 235 | |
| 236 | |
| 237 | if __name__ == "__main__": |
no test coverage detected