|
@@ -101,7 +101,13 @@ let print ~color ~style message =
|
|
(* Behave in a conform way to verbosity
|
|
(* Behave in a conform way to verbosity
|
|
* The higher is the number, the more important the message is, the lower
|
|
* The higher is the number, the more important the message is, the lower
|
|
* verbosity value display it *)
|
|
* verbosity value display it *)
|
|
-let check_verbosity ~f function_number =
|
|
|
|
|
|
+(* f: function to show the message
|
|
|
|
+ * debug: fonction to call before f, for instance a debugging function displaying
|
|
|
|
+ * date and time *)
|
|
|
|
+let check_verbosity ?debug ~f function_number =
|
|
|
|
+ (* Debugging function *)
|
|
|
|
+ debug |> (function None -> () | Some debug_fonction -> debug_fonction "");
|
|
|
|
+
|
|
match function_number <= !Const.verbosity with
|
|
match function_number <= !Const.verbosity with
|
|
true -> (* Display the message *)
|
|
true -> (* Display the message *)
|
|
f ()
|
|
f ()
|
|
@@ -118,14 +124,14 @@ let debug message =
|
|
;;
|
|
;;
|
|
|
|
|
|
let info message =
|
|
let info message =
|
|
- check_verbosity ~f:(fun () ->
|
|
|
|
|
|
+ check_verbosity ~debug ~f:(fun () ->
|
|
let mess = message ^ "\n" in
|
|
let mess = message ^ "\n" in
|
|
print ~color:White ~style:Bold mess
|
|
print ~color:White ~style:Bold mess
|
|
) 3
|
|
) 3
|
|
;;
|
|
;;
|
|
|
|
|
|
let warning message =
|
|
let warning message =
|
|
- check_verbosity ~f:(fun () ->
|
|
|
|
|
|
+ check_verbosity ~debug ~f:(fun () ->
|
|
let mess = message ^ "\n" in
|
|
let mess = message ^ "\n" in
|
|
print ~color:Red ~style:Bold mess
|
|
print ~color:Red ~style:Bold mess
|
|
) 1
|
|
) 1
|
|
@@ -160,24 +166,26 @@ let rec confirm info =
|
|
(* XXX Be sure to show the message *)
|
|
(* XXX Be sure to show the message *)
|
|
Out_channel.(flush stdout);
|
|
Out_channel.(flush stdout);
|
|
let str_answer = In_channel.(input_line ~fix_win_eol:true stdin) in
|
|
let str_answer = In_channel.(input_line ~fix_win_eol:true stdin) in
|
|
- str_answer |> (function
|
|
|
|
- | Some "Y" | Some "y" | Some "Yes" | Some "YES" | Some "yes" -> Yes
|
|
|
|
- | Some "N" | Some "n" | Some "No" | Some "NO" | Some "no" -> No
|
|
|
|
- | Some _ | None ->
|
|
|
|
- warning "Please enter 'yes' or 'no' or 'y' or 'n'.";
|
|
|
|
- confirm info)
|
|
|
|
|
|
+ str_answer |> Option.map ~f:String.lowercase
|
|
|
|
+ |> (function
|
|
|
|
+ | Some "y" | Some "ye" | Some "yes" -> Yes
|
|
|
|
+ | Some "n" | Some "no" -> No
|
|
|
|
+ | Some _ | None ->
|
|
|
|
+ warning "Please enter 'yes' or 'no', or 'y' or 'n' (case \
|
|
|
|
+ doesn't matter).";
|
|
|
|
+ confirm info)
|
|
)
|
|
)
|
|
;;
|
|
;;
|
|
|
|
|
|
let ok message =
|
|
let ok message =
|
|
- check_verbosity ~f:(fun () ->
|
|
|
|
|
|
+ check_verbosity ~debug ~f:(fun () ->
|
|
let mess = message ^ "\n" in
|
|
let mess = message ^ "\n" in
|
|
print ~color:Green ~style:Bold mess
|
|
print ~color:Green ~style:Bold mess
|
|
) 2
|
|
) 2
|
|
;;
|
|
;;
|
|
|
|
|
|
let tips message =
|
|
let tips message =
|
|
- check_verbosity ~f:(fun () ->
|
|
|
|
|
|
+ check_verbosity ~debug ~f:(fun () ->
|
|
let mess = message ^ "\n" in
|
|
let mess = message ^ "\n" in
|
|
print ~color:Yellow ~style:Normal mess
|
|
print ~color:Yellow ~style:Normal mess
|
|
) 4
|
|
) 4
|