public int Execute() { // parse the settings if any were specified if (null != this.SettingsFile1 || null != this.SettingsFile2) { this.ParseSettingsFiles(this.SettingsFile1, this.SettingsFile2); } else { if (File.Exists(ConvertCommand.SettingsFileDefault)) { this.ParseSettingsFiles(ConvertCommand.SettingsFileDefault, null); } } var messaging = this.ServiceProvider.GetService <IMessaging>(); var converter = new Wix3Converter(messaging, this.IndentationAmount, this.ErrorsAsWarnings, this.IgnoreErrors); var errors = this.InspectSubDirectories(converter, Path.GetFullPath(".")); foreach (var searchPattern in this.SearchPatterns) { if (!this.SearchPatternResults.Contains(searchPattern)) { Console.Error.WriteLine("Could not find file \"{0}\"", searchPattern); errors++; } } return(errors != 0 ? 2 : 0); }
/// <summary> /// Inspect sub-directories. /// </summary> /// <param name="directory">The directory whose sub-directories will be inspected.</param> /// <returns>The number of errors that were found.</returns> private int InspectSubDirectories(Wix3Converter converter, string directory) { var errors = 0; foreach (var searchPattern in this.SearchPatterns) { foreach (var sourceFilePath in GetFiles(directory, searchPattern)) { var file = new FileInfo(sourceFilePath); if (!this.ExemptFiles.Contains(file.Name.ToUpperInvariant())) { this.SearchPatternResults.Add(searchPattern); errors += converter.ConvertFile(file.FullName, this.FixErrors); } } } if (this.SubDirectories) { foreach (var childDirectoryPath in Directory.GetDirectories(directory)) { errors += this.InspectSubDirectories(converter, childDirectoryPath); } } return(errors); }