@click.command("inspect")
@click.argument(
"package_file",
type=click.Path(exists=True, dir_okay=False, resolve_path=True),
required=True,
)
@click.option(
"--json",
"output_json",
is_flag=True,
help="Output as JSON",
)
def inspect_command(package_file: str, output_json: bool) -> None:
"""Quick inspection of a flavor package."""
package_path = Path(package_file)
log.debug("Inspecting package", package=str(package_path), output_json=output_json)
try:
with PSPFReader(package_path) as reader:
index = reader.read_index()
metadata = reader.read_metadata()
slot_descriptors = reader.read_slot_descriptors()
slots_metadata = metadata.get("slots", [])
log.debug(
"Package inspection completed",
format_version=f"0x{index.format_version:08x}",
slot_count=len(slot_descriptors),
)
if output_json:
_output_json_format(package_path, index, metadata, slot_descriptors, slots_metadata)
else:
_output_human_format(package_path, index, metadata, slot_descriptors, slots_metadata)
except FileNotFoundError as e:
log.error("Package not found", package=package_file)
perr(f"❌ Package not found: {package_file}")
raise click.Abort() from e
except Exception as e:
log.error("Error inspecting package", package=package_file, error=str(e))
perr(f"❌ Error inspecting package: {e}")
raise click.Abort() from e