static int Main(string[] args) { IConfiguration configuration = new ConfigurationBuilder() .SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)) .AddJsonFile("flutnet.appsettings.json") .Build(); #if DEBUG //return Core.Infrastructure.DevWorkUnit.Run(); #endif try { #if DEBUG if (configuration.GetValue("Debuggable", false)) { for (;;) { Console.WriteLine("Waiting for debugger..."); if (Debugger.IsAttached) { break; } System.Threading.Thread.Sleep(1000); } } #endif return(Parser.Default.ParseArguments <ExecOptions, PackOptions>(args) .MapResult( (ExecOptions options) => ExecCommand.Run(options), (PackOptions options) => PackCommand.Run(options), errors => ReturnCodes.OptionsParsingError)); } catch (OptionsValidationException ex) { Console.WriteLine(ex.Message); return(ReturnCodes.OptionsValidationError); } }