private static void WriteOutput( string file, AssemblyVersionInfo assemblyVersionInfo, OutputFormat outputFormat, bool showFileVersion, bool showProdVersion) { var output = new StringBuilder(); output.Append(file); switch (outputFormat) { case OutputFormat.PlainText: output.Append(": "); break; case OutputFormat.TabDelimited: output.Append("\t"); break; default: throw new ArgumentOutOfRangeException(nameof(outputFormat), outputFormat, null); } output.Append(assemblyVersionInfo.ToString(outputFormat, showFileVersion, showProdVersion)); Console.WriteLine(output.ToString()); }
private static int Main(string[] args) { ExitCode exitCode; try { exitCode = ProcessOptions( args, out var showFileVersion, out var showProdVersion, out var format, out var recursive, out var paths); if (exitCode == 0) { foreach (var path in paths) { CheckPath(path); } if (format == OutputFormat.TabDelimited) { WriteHeader(showFileVersion, showProdVersion); } foreach (var path in paths) { var files = GetFiles(path, recursive); foreach (var file in files) { var versionInfo = new AssemblyVersionInfo(file); WriteOutput(file, versionInfo, format, showFileVersion, showProdVersion); } } } } catch (Exception exception) { Console.Error.WriteLine(exception.ToString()); exitCode = ExitCode.Exception; } if (Debugger.IsAttached) { Console.WriteLine(""); Console.WriteLine("Exit code: " + exitCode + " (" + (int)exitCode + ")"); Console.WriteLine("DEBUG: Press x to exit."); while (Console.ReadKey(true).KeyChar != 'x') { Thread.Sleep(1000); } } return((int)exitCode); }