diff --git a/content_builder.go b/content_builder.go index 38f32a6..4372a67 100644 --- a/content_builder.go +++ b/content_builder.go @@ -27,6 +27,13 @@ func (b *contentBuilder) build(protoFile *descriptorpb.FileDescriptorProto) (str return "", errors.New(protoFile.GetName() + ": only one top-level type may be defined in a file (see https://cloud.google.com/pubsub/docs/schemas#schema_types). use nested types or imports (see https://developers.google.com/protocol-buffers/docs/proto)") } + compVersion := b.request.GetCompilerVersion() + fmt.Fprintln(b.output, "// Code generated by protoc-gen-pubsub-schema. DO NOT EDIT.") + fmt.Fprintln(b.output, "// versions:") + fmt.Fprintln(b.output, "// protoc-gen-pubsub-schema v1.4.2") + fmt.Fprintf(b.output, "// protoc v%d.%d.%d%s\n", compVersion.GetMajor(), compVersion.GetMinor(), compVersion.GetPatch(), compVersion.GetSuffix()) + fmt.Fprintln(b.output, "// source:", protoFile.GetName()) + fmt.Fprintln(b.output, "") fmt.Fprintf(b.output, `syntax = "%s";`, b.schemaSyntax) b.output.WriteString("\n\n") b.buildMessage(protoFile.GetMessageType()[0], 0) diff --git a/example/user_add_comment.pps b/example/user_add_comment.pps index 05aa047..7c290a7 100644 --- a/example/user_add_comment.pps +++ b/example/user_add_comment.pps @@ -1,3 +1,9 @@ +// Code generated by protoc-gen-pubsub-schema. DO NOT EDIT. +// versions: +// protoc-gen-pubsub-schema v1.4.2 +// protoc v3.17.3 +// source: example/user_add_comment.proto + syntax = "proto2"; message UserAddComment { diff --git a/test/user_add_comment.out b/test/user_add_comment.out index a8042d7..9e08454 100644 --- a/test/user_add_comment.out +++ b/test/user_add_comment.out @@ -1,4 +1,4 @@ file: { name: "example/user_add_comment.pps" - content: "syntax = \"proto2\";\n\nmessage UserAddComment {\n required User user = 1;\n required string comment = 2;\n repeated ExampleCommonLabel labels = 3;\n required GoogleProtobufTimestamp timestamp = 101;\n\n message User {\n required string first_name = 1;\n optional string last_name = 2;\n optional bytes avatar = 3;\n optional Location location = 4;\n optional GoogleProtobufTimestamp created_at = 5;\n optional GoogleProtobufTimestamp updated_at = 6;\n\n message Location {\n required double longitude = 1;\n required double latitude = 2;\n }\n\n message GoogleProtobufTimestamp {\n optional int64 seconds = 1;\n optional int32 nanos = 2;\n }\n }\n\n message ExampleCommonLabel {\n optional string key = 1;\n optional string value = 2;\n }\n\n message GoogleProtobufTimestamp {\n optional int64 seconds = 1;\n optional int32 nanos = 2;\n }\n}\n" + content: "// Code generated by protoc-gen-pubsub-schema. DO NOT EDIT.\n// versions:\n// protoc-gen-pubsub-schema v1.4.2\n// protoc v3.17.3\n// source: example/user_add_comment.proto\n\nsyntax = \"proto2\";\n\nmessage UserAddComment {\n required User user = 1;\n required string comment = 2;\n repeated ExampleCommonLabel labels = 3;\n required GoogleProtobufTimestamp timestamp = 101;\n\n message User {\n required string first_name = 1;\n optional string last_name = 2;\n optional bytes avatar = 3;\n optional Location location = 4;\n optional GoogleProtobufTimestamp created_at = 5;\n optional GoogleProtobufTimestamp updated_at = 6;\n\n message Location {\n required double longitude = 1;\n required double latitude = 2;\n }\n\n message GoogleProtobufTimestamp {\n optional int64 seconds = 1;\n optional int32 nanos = 2;\n }\n }\n\n message ExampleCommonLabel {\n optional string key = 1;\n optional string value = 2;\n }\n\n message GoogleProtobufTimestamp {\n optional int64 seconds = 1;\n optional int32 nanos = 2;\n }\n}\n" }