* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / Microsoft.Build.Engine / Microsoft.Build.BuildEngine / ConsoleLogger.cs
index da9c296d14e57d8c7a6aec93598560bd417ada2a..25375a177a6ec99e73b3584fbf3f9d0edaf92307 100644 (file)
@@ -44,26 +44,40 @@ namespace Microsoft.Build.BuildEngine {
                int             warningCount;
                DateTime                buildStart;
                bool            performanceSummary;
-               bool            summary;
+               bool            showSummary;
+               bool            skipProjectStartedText;
                
                public ConsoleLogger ()
-                       : this (LoggerVerbosity.Normal)
+                       : this (LoggerVerbosity.Normal, null, null, null)
                {
                }
 
                public ConsoleLogger (LoggerVerbosity verbosity)
+                       : this (LoggerVerbosity.Normal, null, null, null)
+               {
+               }
+               
+               // FIXME: what about colorSet and colorReset?
+               public ConsoleLogger (LoggerVerbosity verbosity,
+                                     WriteHandler write,
+                                     ColorSetter colorSet,
+                                     ColorResetter colorReset)
                {
                        this.verbosity = verbosity;
                        this.indent = 0;
                        this.errorCount = 0;
                        this.warningCount = 0;
-                       this.writeHandler += new WriteHandler (WriteHandlerFunction);
+                       if (write == null)
+                               this.writeHandler += new WriteHandler (WriteHandlerFunction);
+                       else
+                               this.writeHandler += write;
                        this.performanceSummary = false;
-                       this.summary = true;
+                       this.showSummary = true;
+                       this.skipProjectStartedText = false;
                }
                
-               public virtual void ApplyParameter (string parameterName,
-                                                   string parameterValue)
+               public void ApplyParameter (string parameterName,
+                                           string parameterValue)
                {
                        // FIXME: what we should do here? in msbuild it isn't
                        // changing "parameters" property
@@ -71,38 +85,38 @@ namespace Microsoft.Build.BuildEngine {
 
                public virtual void Initialize (IEventSource eventSource)
                {
-                        eventSource.BuildStarted +=  new BuildStartedEventHandler (BuildStarted);
-                        eventSource.BuildFinished += new BuildFinishedEventHandler (BuildFinished);
-                        eventSource.ProjectStarted += new ProjectStartedEventHandler (ProjectStarted);
-                        eventSource.ProjectFinished += new ProjectFinishedEventHandler (ProjectFinished);
-                        eventSource.TargetStarted += new TargetStartedEventHandler (TargetStarted);
-                        eventSource.TargetFinished += new TargetFinishedEventHandler (TargetFinished);
-                        eventSource.TaskStarted += new TaskStartedEventHandler (TaskStarted);
-                        eventSource.TaskFinished += new TaskFinishedEventHandler (TaskFinished);
-                        eventSource.MessageRaised += new BuildMessageEventHandler (MessageRaised);
-                        eventSource.WarningRaised += new BuildWarningEventHandler (WarningRaised);
-                        eventSource.ErrorRaised += new BuildErrorEventHandler (ErrorRaised);
+                        eventSource.BuildStarted +=  new BuildStartedEventHandler (BuildStartedHandler);
+                        eventSource.BuildFinished += new BuildFinishedEventHandler (BuildFinishedHandler);
+                        eventSource.ProjectStarted += new ProjectStartedEventHandler (ProjectStartedHandler);
+                        eventSource.ProjectFinished += new ProjectFinishedEventHandler (ProjectFinishedHandler);
+                        eventSource.TargetStarted += new TargetStartedEventHandler (TargetStartedHandler);
+                        eventSource.TargetFinished += new TargetFinishedEventHandler (TargetFinishedHandler);
+                        eventSource.TaskStarted += new TaskStartedEventHandler (TaskStartedHandler);
+                        eventSource.TaskFinished += new TaskFinishedEventHandler (TaskFinishedHandler);
+                        eventSource.MessageRaised += new BuildMessageEventHandler (MessageHandler);
+                        eventSource.WarningRaised += new BuildWarningEventHandler (WarningHandler);
+                        eventSource.ErrorRaised += new BuildErrorEventHandler (ErrorHandler);
                }
                
-               public void BuildStarted (object sender, BuildStartedEventArgs args)
+               public void BuildStartedHandler (object sender, BuildStartedEventArgs args)
                {
                        WriteLine ("");
-                       WriteLine (String.Format ("Build started {0}.", args.TimeStamp));
+                       WriteLine (String.Format ("Build started {0}.", args.Timestamp));
                        WriteLine ("__________________________________________________");
-                       buildStart = args.TimeStamp;
+                       buildStart = args.Timestamp;
                }
                
-               public void BuildFinished (object sender, BuildFinishedEventArgs args)
+               public void BuildFinishedHandler (object sender, BuildFinishedEventArgs args)
                {
                        if (args.Succeeded == true) {
                                WriteLine ("Build succeeded.");
                        } else {
                                WriteLine ("Build failed.");
                        }
-                       if (performanceSummary == true)
-                               ;
-                       if (summary == true){
-                               TimeSpan timeElapsed = args.TimeStamp - buildStart;
+                       if (performanceSummary == true) {
+                       }
+                       if (showSummary == true){
+                               TimeSpan timeElapsed = args.Timestamp - buildStart;
                                WriteLine (String.Format ("\t {0} Warning(s)", warningCount));
                                WriteLine (String.Format ("\t {0} Error(s)", errorCount));
                                WriteLine ("");
@@ -110,13 +124,13 @@ namespace Microsoft.Build.BuildEngine {
                        } 
                }
 
-               public void ProjectStarted (object sender, ProjectStartedEventArgs args)
+               public void ProjectStartedHandler (object sender, ProjectStartedEventArgs args)
                {
                        WriteLine (String.Format ("Project \"{0}\" ({1} target(s)):", args.ProjectFile, args.TargetNames));
                        WriteLine ("");
                }
                
-               public void ProjectFinished (object sender, ProjectFinishedEventArgs args)
+               public void ProjectFinishedHandler (object sender, ProjectFinishedEventArgs args)
                {
                        if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Diagnostic)) {
                                WriteLine (String.Format ("Done building project \"{0}\".", args.ProjectFile));
@@ -124,13 +138,13 @@ namespace Microsoft.Build.BuildEngine {
                        }
                }
                
-               public void TargetStarted (object sender, TargetStartedEventArgs args)
+               public void TargetStartedHandler (object sender, TargetStartedEventArgs args)
                {
                        WriteLine (String.Format ("Target {0}:",args.TargetName));
                        indent++;
                }
                
-               public void TargetFinished (object sender, TargetFinishedEventArgs args)
+               public void TargetFinishedHandler (object sender, TargetFinishedEventArgs args)
                {
                        indent--;
                        if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Diagnostic))
@@ -139,41 +153,46 @@ namespace Microsoft.Build.BuildEngine {
                        WriteLine ("");
                }
                
-               public void TaskStarted (object sender, TaskStartedEventArgs args)
+               public void TaskStartedHandler (object sender, TaskStartedEventArgs args)
                {
                        if (this.verbosity == LoggerVerbosity.Diagnostic)
                                WriteLine (String.Format ("Task \"{0}\"",args.TaskName));
                        indent++;
                }
                
-               public void TaskFinished (object sender, TaskFinishedEventArgs args)
+               public void TaskFinishedHandler (object sender, TaskFinishedEventArgs args)
                {
                        indent--;
                        if (this.verbosity == LoggerVerbosity.Diagnostic)
                                WriteLine (String.Format ("Done executing task \"{0}\"",args.TaskName));
                }
                
-               public void MessageRaised (object sender, BuildMessageEventArgs args)
+               public void MessageHandler (object sender, BuildMessageEventArgs args)
                {
                        if (IsMessageOk (args)) {
                                WriteLine (args.Message);
                        }
                }
                
-               public void WarningRaised (object sender, BuildWarningEventArgs args)
+               public void WarningHandler (object sender, BuildWarningEventArgs args)
                {
                        if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) 
                                WriteLineWithoutIndent (FormatWarningEvent (args));
                        warningCount++;
                }
                
-               public void ErrorRaised (object sender, BuildErrorEventArgs args)
+               public void ErrorHandler (object sender, BuildErrorEventArgs args)
                {
                        if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Minimal)) 
                                WriteLineWithoutIndent (FormatErrorEvent (args));
                        errorCount++;
                }
                
+               [MonoTODO]
+               public void CustomEventHandler (object sender, CustomBuildEventArgs args)
+               {
+               }
+               
                private void WriteLine (string message)
                {
                        for (int i = 0; i < indent; i++)
@@ -186,14 +205,6 @@ namespace Microsoft.Build.BuildEngine {
                        writeHandler (message);
                }
                
-               private void WriteLineWithSender (object sender, string message)
-               {
-                       if ((string) sender == "MSBuild")
-                               WriteLine (message);
-                       else
-                               WriteLine ((string) sender + ": " + message);
-               }
-               
                private void WriteHandlerFunction (string message)
                {
                        Console.WriteLine (message);
@@ -208,7 +219,7 @@ namespace Microsoft.Build.BuildEngine {
                                        this.performanceSummary = true;
                                        break;
                                case "NoSummary":
-                                       this.summary = false;
+                                       this.showSummary = false;
                                        break;
                                default:
                                        throw new ArgumentException ("Invalid parameter.");
@@ -284,25 +295,27 @@ namespace Microsoft.Build.BuildEngine {
                                        ParseParameters ();
                        }
                }
+               
+               public bool ShowSummary {
+                       get { return showSummary; }
+                       set { showSummary = value; }
+               }
+               
+               public bool SkipProjectStartedText {
+                       get { return skipProjectStartedText; }
+                       set { skipProjectStartedText = value; }
+               }
 
                public LoggerVerbosity Verbosity {
-                       get {
-                               return verbosity;
-                       }
-                       set {
-                               verbosity = value;
-                       }
+                       get { return verbosity; }
+                       set { verbosity = value; }
                }
 
                protected WriteHandler WriteHandler {
-                       get {
-                               return writeHandler;
-                       }
-                       set {
-                               writeHandler = value;
-                       }
+                       get { return writeHandler; }
+                       set { writeHandler = value; }
                }
        }
 }
 
-#endif
\ No newline at end of file
+#endif