Skip to content
Snippets Groups Projects
Commit 8c1b25ab authored by Virgile Prevosto's avatar Virgile Prevosto
Browse files

Refactor cmdline options that decide what kind of output should be generated

parent 1758b331
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,8 @@ ifndef FRAMAC_SHARE ...@@ -3,7 +3,8 @@ ifndef FRAMAC_SHARE
endif endif
PLUGIN_NAME:=Report_markdown PLUGIN_NAME:=Report_markdown
PLUGIN_CMO:=markdown sarif mdr_params parse_remarks eva_coverage md_gen PLUGIN_CMO:=\
markdown sarif mdr_params parse_remarks eva_coverage sarif_gen md_gen
PLUGIN_NO_TEST:=true PLUGIN_NO_TEST:=true
PLUGIN_REQUIRES:=ppx_deriving ppx_deriving_yojson yojson PLUGIN_REQUIRES:=ppx_deriving ppx_deriving_yojson yojson
PLUGIN_DISTRIB_EXTERNAL:=share/acsl.xml PLUGIN_DISTRIB_EXTERNAL:=share/acsl.xml
......
...@@ -5,10 +5,7 @@ include Plugin.S ...@@ -5,10 +5,7 @@ include Plugin.S
module Output: Parameter_sig.String module Output: Parameter_sig.String
(** Value of [-mdr-gen]. *) (** Value of [-mdr-gen]. *)
module Generate: Parameter_sig.Bool module Generate: Parameter_sig.String
(** Value of [-mdr-gen-draft]. *)
module Gen_draft: Parameter_sig.Bool
(** Value of [-mdr-remarks]. *) (** Value of [-mdr-remarks]. *)
module Remarks: Parameter_sig.String module Remarks: Parameter_sig.String
......
...@@ -582,10 +582,10 @@ let mk_date () = ...@@ -582,10 +582,10 @@ let mk_date () =
(Printf.sprintf "%d-%02d-%02d" (Printf.sprintf "%d-%02d-%02d"
(1900 + tm.Unix.tm_year) (1 + tm.Unix.tm_mon) tm.Unix.tm_mday) (1900 + tm.Unix.tm_year) (1 + tm.Unix.tm_mon) tm.Unix.tm_mday)
let mk_remarks () = let mk_remarks is_draft =
let f = Mdr_params.Remarks.get () in let f = Mdr_params.Remarks.get () in
if f <> "" then Parse_remarks.get_remarks f if f <> "" then Parse_remarks.get_remarks f
else if Mdr_params.Gen_draft.get () then begin else if is_draft then begin
let f = Mdr_params.Output.get() in let f = Mdr_params.Output.get() in
if Sys.file_exists f then begin if Sys.file_exists f then begin
Mdr_params.feedback Mdr_params.feedback
...@@ -595,7 +595,7 @@ let mk_remarks () = ...@@ -595,7 +595,7 @@ let mk_remarks () =
end else Datatype.String.Map.empty end else Datatype.String.Map.empty
let gen_report is_draft = let gen_report is_draft =
let remarks = mk_remarks () in let remarks = mk_remarks is_draft in
let env = { remarks; is_draft } in let env = { remarks; is_draft } in
let context = gen_context env in let context = gen_context env in
let coverage = gen_coverage env in let coverage = gen_coverage env in
...@@ -645,13 +645,13 @@ let gen_report is_draft = ...@@ -645,13 +645,13 @@ let gen_report is_draft =
(Mdr_params.Output.get()) s (Mdr_params.Output.get()) s
let main () = let main () =
if Mdr_params.Gen_draft.get () then begin match Mdr_params.Generate.get () with
if Mdr_params.Generate.get () then | "none" -> ()
Mdr_params.warning | "md" -> gen_report false
"-mdr-gen and -mdr-gen-draft cannot be activated at the \ | "draft" -> gen_report true
same time. Only draft will be generated"; | "sarif" -> Sarif_gen.generate ()
gen_report true | s ->
end Mdr_params.fatal "Unexpected value for option %s: %s"
else if Mdr_params.Generate.get () then gen_report false Mdr_params.Generate.option_name s
let () = Db.Main.extend main let () = Db.Main.extend main
...@@ -13,19 +13,18 @@ struct ...@@ -13,19 +13,18 @@ struct
let help = "sets the name of the output file to <f>" let help = "sets the name of the output file to <f>"
end) end)
module Generate = False( module Generate = String(
struct struct
let option_name = "-mdr-gen" let option_name = "-mdr-gen"
let help = "generates an analysis report on the current project" let arg_name = "kind"
let default = "none"
let help =
"select the <kind> of report to generate among: \
none (default), md, draft and sarif"
end) end)
module Gen_draft = False( let () =
struct Generate.set_possible_values [ "none"; "md"; "draft"; "sarif" ]
let option_name = "-mdr-gen-draft"
let help =
"instead of a full report, generates an empty draft \
in a format suitable for -mdr-remarks"
end)
module Remarks = Empty_string( module Remarks = Empty_string(
struct struct
......
...@@ -4,10 +4,7 @@ include Plugin.S ...@@ -4,10 +4,7 @@ include Plugin.S
module Output: Parameter_sig.String module Output: Parameter_sig.String
(** Value of [-mdr-gen]. *) (** Value of [-mdr-gen]. *)
module Generate: Parameter_sig.Bool module Generate: Parameter_sig.String
(** Value of [-mdr-gen-draft]. *)
module Gen_draft: Parameter_sig.Bool
(** Value of [-mdr-remarks]. *) (** Value of [-mdr-remarks]. *)
module Remarks: Parameter_sig.String module Remarks: Parameter_sig.String
......
let generate () = Mdr_params.not_yet_implemented "Sarif_gen.generate"
(** generate a sarif json object. *)
val generate: unit -> unit
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment