Sha256: cb87af93fb3912546d563d44d6a76c0bc8c2454a4b5a4236a550777a04a12e83

Contents?: true

Size: 1.69 KB

Versions: 17

Compression:

Stored size: 1.69 KB

Contents

using System;
using CommandLine;
using Generators.Input;
using Serilog;

namespace Generators
{
    public static class Program
    {
        public static int Main(string[] args)
        {
            SetupLogger();

            try
            {
                Parser.Default.ParseArguments<Options>(args)
                    .WithParsed(RegenerateTestClasses);
                return 0;
            }
            catch (Exception exception)
            {
                Log.Error(exception, "Exception occured: {Message}", exception.Message);
                return 1;
            }
        }

        private static void SetupLogger()
        {
            Log.Logger = new LoggerConfiguration()
                .WriteTo.LiterateConsole()
                .CreateLogger();
        }

        private static void RegenerateTestClasses(Options options)
        {
            Log.Information("Re-generating test classes...");
            
            var canonicalDataParser = CreateCanonicalDataParser(options);

            foreach (var exercise in new ExerciseCollection(options.Exercises))
            {
                var canonicalData = canonicalDataParser.Parse(exercise);
                exercise.Regenerate(canonicalData);
            }

            Log.Information("Re-generated test classes.");
        }

        private static CanonicalDataParser CreateCanonicalDataParser(Options options)
        {
            var canonicalDataOptions = new CanonicalDataOptions
            {
                CanonicalDataDirectory = options.CanonicalDataDirectory,
                CacheCanonicalData = options.CacheCanonicalData
            };
            return new CanonicalDataParser(canonicalDataOptions);
        }
    }
}

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
trackler-2.2.1.29 tracks/csharp/generators/Program.cs
trackler-2.2.1.28 tracks/csharp/generators/Program.cs
trackler-2.2.1.27 tracks/csharp/generators/Program.cs
trackler-2.2.1.26 tracks/csharp/generators/Program.cs
trackler-2.2.1.25 tracks/csharp/generators/Program.cs
trackler-2.2.1.24 tracks/csharp/generators/Program.cs
trackler-2.2.1.23 tracks/csharp/generators/Program.cs
trackler-2.2.1.22 tracks/csharp/generators/Program.cs
trackler-2.2.1.21 tracks/csharp/generators/Program.cs
trackler-2.2.1.20 tracks/csharp/generators/Program.cs
trackler-2.2.1.19 tracks/csharp/generators/Program.cs
trackler-2.2.1.18 tracks/csharp/generators/Program.cs
trackler-2.2.1.17 tracks/csharp/generators/Program.cs
trackler-2.2.1.16 tracks/csharp/generators/Program.cs
trackler-2.2.1.15 tracks/csharp/generators/Program.cs
trackler-2.2.1.14 tracks/csharp/generators/Program.cs
trackler-2.2.1.13 tracks/csharp/generators/Program.cs