diff --git a/src/kernel_internals/runtime/special_hooks.ml b/src/kernel_internals/runtime/special_hooks.ml index ecc8203404c5851a32fa472c1d0f90221b95f444..adff0fd68e5b710f29d06c9513d2223638af00da 100644 --- a/src/kernel_internals/runtime/special_hooks.ml +++ b/src/kernel_internals/runtime/special_hooks.ml @@ -50,9 +50,11 @@ let print_config () = end let () = Cmdline.run_after_early_stage print_config -let print_config get value () = +let print_config ?(newline=false) get value () = if get () then begin Log.print_on_output (fun fmt -> Format.fprintf fmt "%s%!" value) ; + if newline + then Log.print_on_output (fun fmt -> Format.pp_print_newline fmt ()); raise Cmdline.Exit end @@ -62,10 +64,15 @@ let print_configl get value () = Log.print_on_output (fun fmt -> (Format.fprintf fmt "%s%!" (String.concat "\n" value))) ; raise Cmdline.Exit end + let print_version = print_config Kernel.PrintVersion.get Fc_config.version_and_codename let () = Cmdline.run_after_early_stage print_version +let print_version_newline = + print_config ~newline:true Kernel.Version.get Fc_config.version_and_codename +let () = Cmdline.run_after_early_stage print_version_newline + let print_sharepath = print_configl Kernel.PrintShare.get Fc_config.datadirs let () = Cmdline.run_after_early_stage print_sharepath diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index f0da071d53ff16ced72de0b46211f776c161683d..7e6044e5793d0145a1b8338e6df7c51a006315a2 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -358,6 +358,17 @@ module PrintConfig = let help = "print full config information" end) +let () = Parameter_customize.set_group help +let () = Parameter_customize.set_cmdline_stage Cmdline.Early +let () = Parameter_customize.set_negative_option_name "" +module Version = + False(struct + let option_name = "-version" + let module_name = "Version" + let help = "print the Frama-C version" + end) +let () = Version.add_aliases [ "-v"; "--version" ] + let () = Parameter_customize.set_group help let () = Parameter_customize.set_cmdline_stage Cmdline.Early let () = Parameter_customize.set_negative_option_name "" @@ -367,7 +378,6 @@ module PrintVersion = let module_name = "PrintVersion" let help = "print the Frama-C version" end) -let () = PrintVersion.add_aliases [ "-v"; "-version" ; "--version" ] let () = Parameter_customize.set_group help let () = Parameter_customize.set_cmdline_stage Cmdline.Early diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli index 15a26b10d975adf07b32a47e0a96a53bffd0f694..5bf72ac6614400dfd378fbca39d55a4c9b67699e 100644 --- a/src/kernel_services/plugin_entry_points/kernel.mli +++ b/src/kernel_services/plugin_entry_points/kernel.mli @@ -247,12 +247,15 @@ val checks: Cmdline.Group.t (** {2 Installation Information} *) (* ************************************************************************* *) -module PrintConfig: Parameter_sig.Bool -(** Behavior of option "-print-config" *) +module Version: Parameter_sig.Bool +(** Behavior of option "-version" *) module PrintVersion: Parameter_sig.Bool (** Behavior of option "-print-version" *) +module PrintConfig: Parameter_sig.Bool +(** Behavior of option "-print-config" *) + module PrintShare: Parameter_sig.Bool (** Behavior of option "-print-share-path" *)