#!/usr/bin/env python3 """List files in a directory sorted by size, output as JSON.""" import os import sys import json from pathlib import Path def generate_report(directory: str) -> dict: """Generate a file size report for a directory.""" path = Path(directory) if not path.exists(): return {"error": f"Directory does not exist: {directory}", "files": []} if not path.is_dir(): return {"error": f"Path is not a directory: {directory}", "files": []} files = [] for item in path.iterdir(): if item.is_file(): files.append({ "name": item.name, "size": item.stat().st_size, "path": str(item) }) files.sort(key=lambda x: x["size"], reverse=True) return {"files": files, "total": len(files), "directory": directory} if __name__ == "__main__": if len(sys.argv) != 2: print(json.dumps({"error": "Usage: fs-report.py "})) sys.exit(1) report = generate_report(sys.argv[1]) print(json.dumps(report, indent=2))