public void ApplyParameter (string parameterName,
string parameterValue)
{
- // FIXME: what we should do here? in msbuild it isn't
- // changing "parameters" property
+ switch (parameterName) {
+ case "PerformanceSummary":
+ this.performanceSummary = true;
+ break;
+ case "Summary":
+ this.showSummary = true;
+ break;
+ case "NoSummary":
+ this.showSummary = false;
+ break;
+ case "NoItemAndPropertyList":
+ this.noItemAndPropertyList = true;
+ break;
+ default:
+ if (parameterName.StartsWith ("Verbosity="))
+ ParseVerbosity (parameterName);
+ break;
+ }
+ }
+
+ void ParseVerbosity (string s)
+ {
+ string key, value;
+ if (!TrySplitKeyValuePair (s, out key, out value))
+ throw new LoggerException ("Unknown Verbosity, should be set as 'Verbosity=<verbosity>'");
+
+ switch (value) {
+ case "q":
+ case "quiet":
+ Verbosity = LoggerVerbosity.Quiet;
+ break;
+ case "m":
+ case "minimal":
+ Verbosity = LoggerVerbosity.Minimal;
+ break;
+ case "n":
+ case "normal":
+ Verbosity = LoggerVerbosity.Normal;
+ break;
+ case "d":
+ case "detailed":
+ Verbosity = LoggerVerbosity.Detailed;
+ break;
+ case "diag":
+ case "diagnostic":
+ Verbosity = LoggerVerbosity.Diagnostic;
+ break;
+ default:
+ throw new LoggerException (String.Format ("Unknown verbosity - '{0}'", s));
+ }
+ }
+
+ bool TrySplitKeyValuePair (string pair, out string key, out string value)
+ {
+ key = value = null;
+ string[] parts = pair.Split ('=');
+ if (parts.Length != 2)
+ return false;
+
+ key = parts [0];
+ value = parts [1];
+ return true;
}
public virtual void Initialize (IEventSource eventSource)
eventSource.MessageRaised += MessageHandler;
eventSource.WarningRaised += WarningHandler;
eventSource.ErrorRaised += ErrorHandler;
+
+ if (!String.IsNullOrEmpty (parameters))
+ ParseParameters ();
}
public void BuildStartedHandler (object sender, BuildStartedEventArgs args)
}
public void BuildFinishedHandler (object sender, BuildFinishedEventArgs args)
+ {
+ BuildFinishedHandlerActual (args);
+
+ // Reset
+ events.Clear ();
+ errorsTable.Clear ();
+ warningsTable.Clear ();
+ targetPerfTable.Clear ();
+ tasksPerfTable.Clear ();
+ errors.Clear ();
+ warnings.Clear ();
+
+ indent = 0;
+ errorCount = 0;
+ warningCount = 0;
+ projectFailed = false;
+ }
+
+ void BuildFinishedHandlerActual (BuildFinishedEventArgs args)
{
if (!IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) {
PopEvent (args);
WriteLine (String.Format ("Project \"{0}\" ({1} target(s)):", args.ProjectFile,
String.IsNullOrEmpty (args.TargetNames) ? "default" : args.TargetNames));
ResetColor ();
- WriteLine (String.Empty);
DumpProperties (args.Properties);
DumpItems (args.Items);
}
if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Normal)) {
indent++;
SetColor (eventColor);
+ WriteLine (String.Empty);
WriteLine (String.Format ("Target {0}:",args.TargetName));
ResetColor ();
}
public void TaskStartedHandler (object sender, TaskStartedEventArgs args)
{
- if (this.verbosity == LoggerVerbosity.Detailed) {
+ if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Detailed)) {
SetColor (eventColor);
WriteLine (String.Format ("Task \"{0}\"",args.TaskName));
ResetColor ();
StringBuilder sb = new StringBuilder ();
for (int i = 0; i < indent; i++)
sb.Append ('\t');
- sb.Append (message);
- writeHandler (sb.ToString ());
+ string indent_str = sb.ToString ();
+
+ foreach (string line in message.Split (new string[] {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries))
+ writeHandler (indent_str + line);
} else {
writeHandler (message);
}
private void ParseParameters ()
{
string[] splittedParameters = parameters.Split (';');
- foreach (string s in splittedParameters ) {
- switch (s) {
- case "PerformanceSummary":
- this.performanceSummary = true;
- break;
- case "NoSummary":
- this.showSummary = false;
- break;
- case "NoItemAndPropertyList":
- this.noItemAndPropertyList = true;
- break;
- default:
- throw new ArgumentException ("Invalid parameter : " + s);
- }
- }
+ foreach (string s in splittedParameters )
+ ApplyParameter (s, null);
}
public virtual void Shutdown ()
return;
SetColor (eventColor);
- WriteLine ("\n");
+ WriteLine (String.Empty);
WriteLine ("Initial Properties:");
ResetColor ();
foreach (KeyValuePair<string, string> pair in dict)
WriteLine (String.Format ("{0} = {1}", pair.Key, pair.Value));
- WriteLine ("\n");
}
void DumpItems (IEnumerable items)
return;
SetColor (eventColor);
- WriteLine ("\n");
+ WriteLine (String.Empty);
WriteLine ("Initial Items:");
ResetColor ();
if (items == null)
WriteLine (item.ItemSpec);
indent--;
}
- WriteLine ("\n");
}
public string Parameters {
if (value == null)
throw new ArgumentNullException ();
parameters = value;
- if (parameters != String.Empty)
- ParseParameters ();
}
}