@@ -55,18 +55,16 @@ func splitPath(pathname: String) -> (dir: String, base: String, suffix: String)
55
55
return ( dir: dir, base: base, suffix: suffix)
56
56
}
57
57
58
- enum OutputNaming : String {
58
+ enum FileNaming : String {
59
59
case FullPath
60
60
case PathToUnderscores
61
61
case DropPath
62
62
}
63
63
64
- var outputNamingOption : OutputNaming = . FullPath // temporarily hard-coded
65
-
66
- func outputFileName( component: String , fileDescriptor: FileDescriptor ) -> String {
64
+ func outputFileName( component: String , fileDescriptor: FileDescriptor , fileNamingOption: FileNaming ) -> String {
67
65
let ext = " . " + component + " .swift "
68
66
let pathParts = splitPath ( pathname: fileDescriptor. name)
69
- switch outputNamingOption {
67
+ switch fileNamingOption {
70
68
case . FullPath:
71
69
return pathParts. dir + pathParts. base + ext
72
70
case . PathToUnderscores:
@@ -80,11 +78,11 @@ func outputFileName(component: String, fileDescriptor: FileDescriptor) -> String
80
78
81
79
var generatedFiles : [ String : Int ] = [ : ]
82
80
83
- func uniqueOutputFileName( component: String , fileDescriptor: FileDescriptor ) -> String {
84
- let defaultName = outputFileName ( component: component, fileDescriptor: fileDescriptor)
81
+ func uniqueOutputFileName( component: String , fileDescriptor: FileDescriptor , fileNamingOption : FileNaming ) -> String {
82
+ let defaultName = outputFileName ( component: component, fileDescriptor: fileDescriptor, fileNamingOption : fileNamingOption )
85
83
if let count = generatedFiles [ defaultName] {
86
84
generatedFiles [ defaultName] = count + 1
87
- return outputFileName ( component: " \( count) . " + component, fileDescriptor: fileDescriptor)
85
+ return outputFileName ( component: " \( count) . " + component, fileDescriptor: fileDescriptor, fileNamingOption : fileNamingOption )
88
86
} else {
89
87
generatedFiles [ defaultName] = 1
90
88
return defaultName
@@ -108,7 +106,7 @@ func main() throws {
108
106
// process each .proto file separately
109
107
for fileDescriptor in descriptorSet. files {
110
108
if fileDescriptor. services. count > 0 {
111
- let grpcFileName = uniqueOutputFileName ( component: " grpc " , fileDescriptor: fileDescriptor)
109
+ let grpcFileName = uniqueOutputFileName ( component: " grpc " , fileDescriptor: fileDescriptor, fileNamingOption : options . fileNaming )
112
110
let grpcGenerator = Generator ( fileDescriptor, options: options)
113
111
var grpcFile = Google_Protobuf_Compiler_CodeGeneratorResponse . File ( )
114
112
grpcFile. name = grpcFileName
0 commit comments