Example #1
0
        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());
        }
Example #2
0
        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);
        }