Browse Source

Fix gRPC Swift generation when files have same package

bootstraponline 8 years ago
parent
commit
dd258daa1c

+ 0 - 0
Examples/Echo/Generated/echo.client.pb.swift → Examples/Echo/Generated/echo0.client.pb.swift


+ 3 - 3
Plugin/Makefile

@@ -10,15 +10,15 @@ build:  clear
 
 test:	build
 	protoc ../Examples/Echo/echo.proto --proto_path=../Examples/Echo --plugin=./protoc-gen-swiftgrpc --swiftgrpc_out=. --swift_out=.
-	diff echo.client.pb.swift ../Examples/Echo/Generated/echo.client.pb.swift
+	diff echo0.client.pb.swift ../Examples/Echo/Generated/echo0.client.pb.swift
 	diff echo.server.pb.swift ../Examples/Echo/Generated/echo.server.pb.swift
 
 deploy:
-	cp echo.client.pb.swift ../Examples/Echo/Generated/echo.client.pb.swift 
+	cp echo0.client.pb.swift ../Examples/Echo/Generated/echo0.client.pb.swift 
 	cp echo.server.pb.swift ../Examples/Echo/Generated/echo.server.pb.swift 
 
 clear : 
-	rm -f echo.pb.swift echo.client.pb.swift echo.server.pb.swift swiftgrpc.log
+	rm -f echo.pb.swift echo0.client.pb.swift echo.server.pb.swift swiftgrpc.log
 
 clean : clear
 	rm -rf protoc-gen-swiftgrpc Packages .build protoc-gen-swift Package.pins

+ 4 - 1
Plugin/Sources/protoc-gen-swiftgrpc/main.swift

@@ -60,6 +60,7 @@ func main() throws {
   let options = try GeneratorOptions(parameter: request.parameter)
   
   var generatedFileNames = Set<String>()
+  var clientCount = 0
 
   // process each .proto file separately
   for protoFile in request.protoFile {
@@ -91,9 +92,11 @@ func main() throws {
       let context : [String:Any] = ["file": file, "access": options.visibility.sourceSnippet]
 
       do {
-        let clientFileName = package + ".client.pb.swift"
+        let clientFileName = package + "\(clientCount).client.pb.swift"
+        
         if !generatedFileNames.contains(clientFileName) {
           generatedFileNames.insert(clientFileName)
+          clientCount += 1
           let clientcode = try templateEnvironment.renderTemplate(name:"client.pb.swift",
                                                                   context: context)
           var clientfile = Google_Protobuf_Compiler_CodeGeneratorResponse.File()