/// <summary> /// Test entrypoint for the program. Processes CLI arguments and runs the /// application. /// </summary> /// <param name="assembly">The Assembly to use for loading platforms.</param> /// <param name="readLine">The function to use to read user input.</param> /// <param name="args">The CLI arguments provided to the program.</param> /// <returns>The application status code.</returns> public static int Main( Assembly assembly, StdInput.ReadLine readLine, params string[] args) { var program = new Program(assembly, readLine); Parser.Default.ParseArguments < DestroyOptions, ProvisionOptions, ValidateOptions >(args) .WithParsed <ProvisionOptions>(program.Provision) .WithParsed <DestroyOptions>(program.Destroy) .WithParsed <ValidateOptions>(program.Validate) .WithNotParsed(program.HandleParseError); return((int)program.ExitCode); }
private Program(Assembly assembly, StdInput.ReadLine readLine) { Assembly = assembly; ReadLine = readLine; }