X-Git-Url: http://nitlanguage.org diff --git a/src/toolcontext.nit b/src/toolcontext.nit index 8f08e30..62c184a 100644 --- a/src/toolcontext.nit +++ b/src/toolcontext.nit @@ -102,6 +102,9 @@ class ToolContext # Directory where to generate log files var log_directory: String = "logs" + # Stream in `log_directory` where all info messages are written + var log_info: nullable Writer = null + # Messages private var messages = new Array[Message] private var message_sorter: Comparator = default_comparator @@ -236,6 +239,10 @@ class ToolContext if level <= verbose_level then print "{s}" end + if log_info != null then + log_info.write s + log_info.write "\n" + end end # Executes a program while checking if it's available and if the execution ended correctly @@ -243,11 +250,13 @@ class ToolContext # Stops execution and prints errors if the program isn't available or didn't end correctly fun exec_and_check(args: Array[String], error: String) do + info("+ {args.join(" ")}", 2) + var prog = args.first args.remove_at 0 # Is the wanted program available? - var proc_which = new IProcess.from_a("which", [prog]) + var proc_which = new ProcessReader.from_a("which", [prog]) proc_which.wait var res = proc_which.status if res != 0 then @@ -427,8 +436,10 @@ The Nit language documentation and the source code of its tools and libraries ma if opt_log.value then # Make sure the output directory exists log_directory.mkdir - end + # Redirect the verbose messages + log_info = (log_directory/"info.txt").to_path.open_wo + end end # Get the current `nit_version` or "DUMMY_VERSION" if `--set-dummy-tool` is set.