public static void Main(string[] args)
        {
            SetupLogging();

            ParseOptions(args, out var configurationFile, out var repoPath, out var variables, out var diagnostic);

            try
            {
                Logger.Trace("Starting to run FlexVersion analysis...");
                var flexVersion = new FlexVersion(configurationFile, repoPath, variables.ToArray());
                var result      = flexVersion.Analyze();
                Logger.Trace("Done analysing.");

                System.Console.WriteLine(diagnostic
                    ? JsonConvert.SerializeObject(result, Formatting.Indented)
                    : JsonConvert.SerializeObject(result.Output, Formatting.Indented));
            }
            catch (Exception ex)
            {
                Logger.Fatal(diagnostic ? ex.ToString() : ex.Message);
                Environment.Exit(-1);
            }
        }