internal static int Main(string[] args) { try { // Hack to make sure everything's initialized DescriptorProtoFile.Descriptor.ToString(); GeneratorOptions options = new GeneratorOptions { Arguments = args }; IList <string> validationFailures; if (!options.TryValidate(out validationFailures)) { // We've already got the message-building logic in the exception... InvalidOptionsException exception = new InvalidOptionsException(validationFailures); Console.WriteLine(exception.Message); return(1); } var request = new CodeGeneratorRequest.Builder(); foreach (string inputFile in options.InputFiles) { ExtensionRegistry extensionRegistry = ExtensionRegistry.CreateInstance(); CSharpOptions.RegisterAllExtensions(extensionRegistry); using (Stream inputStream = File.OpenRead(inputFile)) { var fileSet = FileDescriptorSet.ParseFrom(inputStream, extensionRegistry); foreach (var fileProto in fileSet.FileList) { request.AddFileToGenerate(fileProto.Name); request.AddProtoFile(fileProto); } } } Generator generator = Generator.CreateGenerator(options); var response = new CodeGeneratorResponse.Builder(); generator.Generate(request.Build(), response); if (response.HasError) { throw new Exception(response.Error); } foreach (var file in response.FileList) { File.WriteAllText(file.Name, file.Content); } return(0); } catch (Exception e) { Console.Error.WriteLine("Error: {0}", e.Message); Console.Error.WriteLine(); Console.Error.WriteLine("Detailed exception information: {0}", e); return(1); } }
internal static int Main(string[] args) { try { // Hack to make sure everything's initialized DescriptorProtoFile.Descriptor.ToString(); GeneratorOptions options = new GeneratorOptions {Arguments = args}; IList<string> validationFailures; if (!options.TryValidate(out validationFailures)) { // We've already got the message-building logic in the exception... InvalidOptionsException exception = new InvalidOptionsException(validationFailures); Console.WriteLine(exception.Message); return 1; } var request = new CodeGeneratorRequest.Builder(); foreach (string inputFile in options.InputFiles) { ExtensionRegistry extensionRegistry = ExtensionRegistry.CreateInstance(); CSharpOptions.RegisterAllExtensions(extensionRegistry); using (Stream inputStream = File.OpenRead(inputFile)) { var fileSet = FileDescriptorSet.ParseFrom(inputStream, extensionRegistry); foreach (var fileProto in fileSet.FileList) { request.AddFileToGenerate(fileProto.Name); request.AddProtoFile(fileProto); } } } Generator generator = Generator.CreateGenerator(options); var response = new CodeGeneratorResponse.Builder(); generator.Generate(request.Build(), response); if (response.HasError) { throw new Exception(response.Error); } foreach (var file in response.FileList) { File.WriteAllText(file.Name, file.Content); } return 0; } catch (Exception e) { Console.Error.WriteLine("Error: {0}", e.Message); Console.Error.WriteLine(); Console.Error.WriteLine("Detailed exception information: {0}", e); return 1; } }