open Base open Base.Result module M = Gemini.MimeTextGemini.MimeTextGemini let test_parse s = M.gemini_to_canon_str (M.str_to_gemini s) module T = Gemini.MimeType.MimeType module R = Gemini.GeminiTransaction.GeminiTransaction(T)(Gemini.TlsUtils.TlsUtils) let () = Lwt_main.run begin let%lwt () = Mirage_crypto_rng_lwt.initialize () in let request : (R.request, string) Base.Result.t = R.make_request (Sys.get_argv()).(1) in match request with | Ok request -> let w = Curses.initscr () in let () = Curses.wclear w in (match%lwt R.session request with | Ok (s, c) -> let _ = Curses.mvwaddstr w 0 0 ("STATUS: " ^ (R.name_of_status s)) in let _ = Curses.mvwaddstr w 1 0 ("STATUS LINE: " ^ (R.string_of_status s)) in let _ = Curses.mvwaddstr w 2 0 c in let _ = Curses.refresh () in let _ = Curses.getch () in let _ = Curses.endwin () in Lwt.return () | Error m -> Lwt_io.printl m) | Error m -> Lwt_io.printl m end