@@ -37,9 +37,9 @@ let resolve_project_name ~client ~api ~project_id ~project_name =
3737let rec analyze_trace ~client ~trace_id ~api ~count profile_id =
3838 let open Lwt.Infix in
3939 (let open Lwt_result.Infix in
40- Cs_api_core. build_analyze_request ~api ~trace_id ~profile_id
41- |> Cs_api_io. send_request ~client
42- >> = Cs_api_io. get_response_graphql)
40+ Cs_api_core. build_analyze_request ~api ~trace_id ~profile_id
41+ |> Cs_api_io. send_request ~client
42+ >> = Cs_api_io. get_response_graphql)
4343 >> = function
4444 | Error "Not found" ->
4545 Printf. printf " Profile ID not found\n " ;
@@ -66,32 +66,37 @@ let upload_trace
6666 ~api =
6767 let open Lwt.Infix in
6868 (let open Lwt_result.Infix in
69- get_file trace_file >> = fun file ->
70- resolve_project_name ~client ~api ~project_id ~project_name
71- >> = fun project_id ->
72- Cs_api_core. build_s3_signed_post_request ~api
73- |> Cs_api_io. send_request ~client
74- >> = Cs_api_io. get_response_graphql
75- >> = (fun body ->
76- match Cs_api_core. parse_s3_signature_request ~body with
77- | None ->
78- Lwt. return (Error " Failed to parse S3 signature request response" )
79- | Some (s3_url , s3_signature ) ->
80- Lwt. return
81- (Ok
82- (Cs_api_core. build_file_upload_request ~s3_url ~s3_signature
83- ~file )))
84- >> = Cs_api_io. send_request ~client
85- >> = Cs_api_io. get_response
86- >> = (fun body ->
87- let s3_key = Cs_api_core. parse_s3_response ~body in
88- let import_request =
89- Cs_api_core. build_trace_import_request ~slot_name ~api ~project_id
90- ~s3_key ~trace_name ~file
91- in
92- Lwt. return (Ok import_request))
93- >> = Cs_api_io. send_request ~client
94- >> = Cs_api_io. get_response_graphql)
69+ get_file trace_file >> = fun file ->
70+ resolve_project_name ~client ~api ~project_id ~project_name
71+ >> = fun project_id ->
72+ Cs_api_core. build_s3_signed_post_request ~api
73+ |> Cs_api_io. send_request ~client
74+ >> = Cs_api_io. get_response_graphql
75+ >> = (fun body ->
76+ match Cs_api_core. parse_s3_signature_request ~body with
77+ | None ->
78+ Lwt. return (Error " Failed to parse S3 signature request response" )
79+ | Some (s3_url , s3_method , s3_signature ) ->
80+ Lwt. return
81+ (Ok
82+ ( s3_url
83+ , Cs_api_core. build_file_upload_request ~s3_url ~s3_method
84+ ~s3_signature ~file )))
85+ >> = (fun (url , request ) ->
86+ ( Cs_api_io. send_request ~client request >> = fun response ->
87+ Cs_api_io. get_response response )
88+ >> = fun body ->
89+ match Cs_api_core. parse_s3_response ~body with
90+ | Ok s3_key -> Lwt_result. return s3_key
91+ | Error _ -> Lwt. return (Cs_api_core. parse_s3_url url))
92+ >> = (fun s3_key ->
93+ let import_request =
94+ Cs_api_core. build_trace_import_request ~slot_name ~api ~project_id
95+ ~s3_key ~trace_name ~file
96+ in
97+ Lwt. return (Ok import_request))
98+ >> = Cs_api_io. send_request ~client
99+ >> = Cs_api_io. get_response_graphql)
95100 >> = function
96101 | Ok body ->
97102 let trace_id = Cs_api_core. get_id_from_trace_import_response_body ~body in
@@ -107,10 +112,10 @@ let upload_trace
107112let list_profiles ~client ~api =
108113 let open Lwt.Infix in
109114 (let open Lwt_result.Infix in
110- Cs_api_core. build_list_profiles_request ~api
111- |> Cs_api_io. send_request ~client
112- >> = Cs_api_io. get_response_graphql
113- > |= fun body -> Cs_api_core. parse_list_profiles_response ~body )
115+ Cs_api_core. build_list_profiles_request ~api
116+ |> Cs_api_io. send_request ~client
117+ >> = Cs_api_io. get_response_graphql
118+ > |= fun body -> Cs_api_core. parse_list_profiles_response ~body )
114119 > |= function
115120 | Error message ->
116121 Printf. printf " %s\n " message;
@@ -184,7 +189,7 @@ let api_endpoint =
184189
185190let api_key =
186191 let doc = " API key" in
187- let env = Cmdliner.Arg. env_var " CRYPTOSENSE_API_KEY" ~doc in
192+ let env = Cmdliner.Cmd.Env. info " CRYPTOSENSE_API_KEY" ~doc in
188193 let doc =
189194 " API key - can also be defined using the CRYPTOSENSE_API_KEY environment \
190195 variable"
@@ -259,10 +264,10 @@ let list_profiles_term =
259264 $ no_check_certificate)
260265
261266let list_profiles_info =
262- Cmdliner.Term . info " list-profiles"
267+ Cmdliner.Cmd . info " list-profiles"
263268 ~doc: " List the available profiles of the Cryptosense Analyzer platform"
264269
265- let list_profiles_cmd = (list_profiles_term, list_profiles_info)
270+ let list_profiles_cmd = Cmdliner.Cmd. v list_profiles_info list_profiles_term
266271
267272let analyze_term =
268273 Cmdliner.Term. (
@@ -275,9 +280,9 @@ let analyze_term =
275280 $ no_check_certificate)
276281
277282let analyze_info =
278- Cmdliner.Term . info " analyze" ~doc: " Analyze a trace to create a report"
283+ Cmdliner.Cmd . info " analyze" ~doc: " Analyze a trace to create a report"
279284
280- let analyze_cmd = (analyze_term, analyze_info)
285+ let analyze_cmd = Cmdliner.Cmd. v analyze_info analyze_term
281286
282287let upload_trace_term =
283288 Cmdliner.Term. (
@@ -294,19 +299,19 @@ let upload_trace_term =
294299 $ no_check_certificate)
295300
296301let upload_trace_info =
297- Cmdliner.Term . info " upload-trace"
302+ Cmdliner.Cmd . info " upload-trace"
298303 ~doc: " Upload a trace to the Cryptosense Analyzer platform"
299304
300- let upload_trace_cmd = (upload_trace_term, upload_trace_info)
305+ let upload_trace_cmd = Cmdliner.Cmd. v upload_trace_info upload_trace_term
301306
302307let default_term =
303308 Cmdliner.Term. (ret (const (`Error (true , " Missing command" ))))
304309
305- let default_info = Cmdliner.Term. info " cs-api" ~version: " %%VERSION_NUM%%"
306-
307- let default_cmd = (default_term, default_info)
310+ let default_info = Cmdliner.Cmd. info " cs-api" ~version: " %%VERSION_NUM%%"
311+ let default_cmd = default_info
308312
309313let () =
310- Cmdliner.Term. eval_choice default_cmd
314+ Cmdliner.Cmd. group ~default: default_term default_cmd
311315 [analyze_cmd; list_profiles_cmd; upload_trace_cmd]
312- |> Cmdliner.Term. exit_status
316+ |> Cmdliner.Cmd. eval'
317+ |> Stdlib. exit
0 commit comments