import sys
import os

def rotate_pdf(input_path, output_path, degrees=180):
    try:
        import pypdf
        reader = pypdf.PdfReader(input_path)
        writer = pypdf.PdfWriter()
        for page in reader.pages:
            page.rotate(degrees)
            writer.add_page(page)
        with open(output_path, "wb") as f:
            writer.write(f)
        return True
    except Exception as e:
        sys.stderr.write(f"Error rotating with pypdf: {e}\n")
        return False

if __name__ == "__main__":
    if len(sys.argv) < 3:
        sys.stderr.write("Usage: rotate_pdf.py <input.pdf> <output.pdf> [degrees]\n")
        sys.exit(1)

    in_file = sys.argv[1]
    out_file = sys.argv[2]
    deg = int(sys.argv[3]) if len(sys.argv) > 3 else 180

    if not os.path.exists(in_file):
        sys.stderr.write(f"File not found: {in_file}\n")
        sys.exit(2)

    ok = rotate_pdf(in_file, out_file, deg)
    if not ok:
        sys.exit(3)
    sys.exit(0)
