summaryrefslogblamecommitdiff
path: root/bin/leda.ml
blob: 80c07af1a5b2760ebb1098c96c3e7494211ee287 (plain) (tree)
1
2
3
4
5
6
7
8
9


                
                                               
 
                                                            
 
                                   
                                                                                  
 

                    















                                                                                            
                                
     
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