@@ -13,6 +13,8 @@ import (
13
13
"text/template"
14
14
15
15
"github.com/pkg/errors"
16
+ "golang.org/x/text/cases"
17
+ "golang.org/x/text/language"
16
18
"golang.org/x/tools/go/packages"
17
19
"golang.org/x/tools/imports"
18
20
@@ -199,16 +201,19 @@ func NewGenerator(options Options) (*Generator, error) {
199
201
return nil , errors .Wrap (err , "failed to parse source package" )
200
202
}
201
203
202
- interfaceType := srcPackage . Name + "." + options . InterfaceName
204
+ var interfaceType string
203
205
if srcPackage .PkgPath == dstPackage .PkgPath {
204
206
interfaceType = options .InterfaceName
205
207
srcPackageAST .Name = ""
206
208
} else {
207
209
if options .SourcePackageAlias != "" {
208
210
srcPackageAST .Name = options .SourcePackageAlias
211
+ } else {
212
+ srcPackageAST .Name = "_source" + cases .Title (language .Und , cases .NoLower ).String (srcPackageAST .Name )
209
213
}
210
214
211
- options .Imports = append (options .Imports , `"` + srcPackage .PkgPath + `"` )
215
+ interfaceType = srcPackageAST .Name + "." + options .InterfaceName
216
+ options .Imports = append (options .Imports , srcPackageAST .Name + ` "` + srcPackage .PkgPath + `"` )
212
217
}
213
218
214
219
output , err := findTarget (processInput {
@@ -251,12 +256,12 @@ func NewGenerator(options Options) (*Generator, error) {
251
256
252
257
func makeImports (imports []* ast.ImportSpec ) []string {
253
258
result := make ([]string , len (imports ))
254
- for _ , i := range imports {
259
+ for i , im := range imports {
255
260
var name string
256
- if i .Name != nil {
257
- name = i .Name .Name
261
+ if im .Name != nil {
262
+ name = im .Name .Name
258
263
}
259
- result = append ( result , name + " " + i .Path .Value )
264
+ result [ i ] = name + " " + im .Path .Value
260
265
}
261
266
262
267
return result
0 commit comments