github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/cmd/protoc-gen-golite/main.go (about) 1 // protocolbuffers/protobuf-go cmd/protoc-gen-go/main.go 2 // https://github.com/protocolbuffers/protobuf-go/blob/master/cmd/protoc-gen-go/main.go 3 // 4 // Copyright © 2018 The Go Authors. All rights reserved. 5 // Portions Copyright © 2021 RomiChan 6 // 7 // Redistribution and use in source and binary forms, with or without 8 // modification, are permitted provided that the following conditions are 9 // met: 10 // 11 // * Redistributions of source code must retain the above copyright 12 // notice, this list of conditions and the following disclaimer. 13 // * Redistributions in binary form must reproduce the above 14 // copyright notice, this list of conditions and the following disclaimer 15 // in the documentation and/or other materials provided with the 16 // distribution. 17 // * Neither the name of Google Inc. nor the names of its 18 // contributors may be used to endorse or promote products derived from 19 // this software without specific prior written permission. 20 // 21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 33 // The protoc-gen-go binary is a protoc plugin to generate Go code for 34 // both proto2 and proto3 versions of the protocol buffer language. 35 // 36 // For more information about the usage of this plugin, see: 37 // https://developers.google.com/protocol-buffers/docs/reference/go-generated 38 package main 39 40 import ( 41 "flag" 42 "fmt" 43 "os" 44 45 "google.golang.org/protobuf/compiler/protogen" 46 "google.golang.org/protobuf/types/pluginpb" 47 48 gengo "github.com/RomiChan/protobuf/internal/generator" 49 ) 50 51 const genGoDocURL = "https://developers.google.com/protocol-buffers/docs/reference/go-generated" 52 53 func main() { 54 if len(os.Args) == 2 && os.Args[1] == "--help" { 55 fmt.Fprintf(os.Stdout, "See "+genGoDocURL+" for usage information.\n") 56 os.Exit(0) 57 } 58 59 var ( 60 flags flag.FlagSet 61 ) 62 protogen.Options{ 63 ParamFunc: flags.Set, 64 }.Run(func(gen *protogen.Plugin) error { 65 for _, f := range gen.Files { 66 if f.Generate { 67 gengo.GenerateFile(gen, f) 68 } 69 } 70 gen.SupportedFeatures = uint64(pluginpb.CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL) 71 return nil 72 }) 73 }