diff --git a/src/kernel_services/cmdline_parameters/parameter_builder.ml b/src/kernel_services/cmdline_parameters/parameter_builder.ml index 22ea00848f54a287597691ae8362ca1334190d4d..f8e95e6cd38e9c7b1f73905ffb3cd6c440b15470 100644 --- a/src/kernel_services/cmdline_parameters/parameter_builder.ml +++ b/src/kernel_services/cmdline_parameters/parameter_builder.ml @@ -577,21 +577,16 @@ struct module Make_user_dir_opt (Parent: Parameter_sig.User_dir) (Info: sig - val name: string + include Parameter_sig.Input_with_arg val env: string option - val help: string + val dirname: string end): Parameter_sig.User_dir_opt = struct - let is_kernel = P.shortname = "" - let prefix = "-" ^ (if is_kernel then "" else P.shortname ^ "-") - module Dir_name = Filepath (struct - let option_name = prefix ^ Info.name - let arg_name = "dir" - let help = Info.help + include Info let existence = Fc_Filepath.Indifferent let file_kind = "" end) @@ -601,7 +596,7 @@ struct else match Option.bind Info.env Sys.getenv_opt with | Some s when s <> "" -> Fc_Filepath.Normalized.of_string s - | _ -> Parent.get_dir Info.name + | _ -> Parent.get_dir Info.dirname let set = Dir_name.set let is_set = Dir_name.is_set @@ -611,11 +606,11 @@ struct try if Extlib.mkdir ~parents:true d' 0o755 then P.L.warning "created %s directory `%a'" - Info.name Fc_Filepath.Normalized.pretty d'; + Info.dirname Fc_Filepath.Normalized.pretty d'; d with Unix.Unix_error _ -> P.L.abort "cannot create %s directory `%a'" - Info.name Fc_Filepath.Normalized.pretty d' + Info.dirname Fc_Filepath.Normalized.pretty d' let get_dir ?(create_path=false) name = let dir = Datatype.Filepath.concat (get ()) name in diff --git a/src/kernel_services/cmdline_parameters/parameter_sig.ml b/src/kernel_services/cmdline_parameters/parameter_sig.ml index 68162ec68456730d3498e7fb4f80a5f136786bad..6d04fc0d819da735a5d1527572ab7421b3652656 100644 --- a/src/kernel_services/cmdline_parameters/parameter_sig.ml +++ b/src/kernel_services/cmdline_parameters/parameter_sig.ml @@ -661,16 +661,14 @@ module type Builder = sig module Make_user_dir_opt (_: User_dir) (_: sig - val name: string - (** The name of the directory, also used to create an option of the - form -<plugin>-<name>. *) - + include Input_with_arg val env: string option (** Can be used to provide an environment variable that can be used instead of the option. The option has higher priority. *) - val help: string + val dirname: string + (** The name of the directory *) end): User_dir_opt (** Allow using custom types as parameters. diff --git a/tests/misc/user_directories.unix.t/directories.ml b/tests/misc/user_directories.unix.t/directories.ml index d4eba52b5e86a45520241924576e01f93fd8a263..e9b949fdf8d073e52ed3f077b47b149cbcf18668 100644 --- a/tests/misc/user_directories.unix.t/directories.ml +++ b/tests/misc/user_directories.unix.t/directories.ml @@ -22,18 +22,22 @@ module Sub_cache_opt_no_var = Self.Make_user_dir_opt (Cache) (struct - let name = "optnovar" - let env = None + let option_name = "-dirs-opt-no-var" + let arg_name = "dir" let help = "" + let env = None + let dirname = "optnovar" end) module Sub_cache_opt_var = Self.Make_user_dir_opt (Cache) (struct - let name = "optvar" - let env = Some "FRAMAC_DIRS_VAR" + let option_name = "-dirs-optvar" + let arg_name = "dir" let help = "" + let env = Some "FRAMAC_DIRS_VAR" + let dirname = "optvar" end) module Config = Self.Config_dir ()