#!/usr/bin/env python3
"""Standalone decoder extracted from the Maharal TIFF vault."""

from __future__ import annotations

import argparse
import json
import sys
from pathlib import Path

from stego.extract import extract_all


def main() -> int:
    parser = argparse.ArgumentParser(description="Maharal L2 decoder")
    parser.add_argument("image", help="JPEG or TIFF with embedded payload")
    parser.add_argument("--out-dir", default="recovered", help="Directory for vault ZIP extraction")
    parser.add_argument("--json", action="store_true")
    args = parser.parse_args()

    out_dir = Path(args.out_dir)
    out_dir.mkdir(parents=True, exist_ok=True)
    result = extract_all(Path(args.image), out_dir=out_dir)

    if args.json:
        print(json.dumps(result, indent=2, default=str))
    elif "manifest" in result:
        print(json.dumps(result["manifest"], indent=2, ensure_ascii=False))
        print(f"\nRecovered from: {result['recovered_from']}")
    elif "bootstrap_url" in result:
        print(f"Bootstrap URL: {result['bootstrap_url']}")
    else:
        print("No payload recovered.")
        return 1
    return 0


if __name__ == "__main__":
    sys.exit(main())
