Thanks for confirming Kristian, I did the same by removing. For anyone else who run into this issue, here's a Go code snippet for scrubbing resource references from a file descriptor set proto file:
package main
import (
"flag"
"io/ioutil"
"log"
"os"
)
func main() {
var filename string
flag.StringVar(&filename, "f", "", "file descriptor set to scrub")
flag.Parse()
if filename == "" {
flag.Usage()
os.Exit(1)
}
input, err := ioutil.ReadFile(filename)
if err != nil {
log.Fatal(err)
}
var fileDescriptorSet descriptorpb.FileDescriptorSet
if err := proto.Unmarshal(input, &fileDescriptorSet); err != nil {
log.Fatal(err)
}
for _, file := range fileDescriptorSet.GetFile() {
for _, message := range file.GetMessageType() {
scrubResourceReferences(message)
}
}
output, err := proto.Marshal(&fileDescriptorSet)
if err != nil {
log.Fatal(err)
}
if err := ioutil.WriteFile(filename, output, 0o600); err != nil {
log.Fatal(err)
}
}
func scrubResourceReferences(message *descriptorpb.DescriptorProto) {
for _, field := range message.GetField() {
if field.GetOptions() != nil {
proto.ClearExtension(field.GetOptions(), annotations.E_ResourceReference)
}
}
for _, nestedMessage := range message.NestedType {
scrubResourceReferences(nestedMessage)
}
}