Skip to content

Commit 4b3364a

Browse files
authored
Merge pull request #92 from hexdigest/fix-87
Fixes #87
2 parents 3f2f531 + 7d704b6 commit 4b3364a

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

cmd_generate.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -307,5 +307,8 @@ package {{.Package.Name}}
307307
{{if (not .Options.HeaderVars.DisableGoGenerate)}}
308308
//{{"go:generate"}} gowrap gen -p {{.SourcePackage.PkgPath}} -i {{.Options.InterfaceName}} -t {{.Options.HeaderVars.Template}} -o {{.Options.HeaderVars.OutputFileName}}{{.Options.HeaderVars.VarsArgs}} -l "{{.Options.LocalPrefix}}"
309309
{{end}}
310-
310+
import(
311+
{{range $import := .Options.Imports}}{{$import}}
312+
{{end}}
313+
)
311314
`

generator/generator.go

+11-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
"text/template"
1414

1515
"github.com/pkg/errors"
16+
"golang.org/x/text/cases"
17+
"golang.org/x/text/language"
1618
"golang.org/x/tools/go/packages"
1719
"golang.org/x/tools/imports"
1820

@@ -199,16 +201,19 @@ func NewGenerator(options Options) (*Generator, error) {
199201
return nil, errors.Wrap(err, "failed to parse source package")
200202
}
201203

202-
interfaceType := srcPackage.Name + "." + options.InterfaceName
204+
var interfaceType string
203205
if srcPackage.PkgPath == dstPackage.PkgPath {
204206
interfaceType = options.InterfaceName
205207
srcPackageAST.Name = ""
206208
} else {
207209
if options.SourcePackageAlias != "" {
208210
srcPackageAST.Name = options.SourcePackageAlias
211+
} else {
212+
srcPackageAST.Name = "_source" + cases.Title(language.Und, cases.NoLower).String(srcPackageAST.Name)
209213
}
210214

211-
options.Imports = append(options.Imports, `"`+srcPackage.PkgPath+`"`)
215+
interfaceType = srcPackageAST.Name + "." + options.InterfaceName
216+
options.Imports = append(options.Imports, srcPackageAST.Name+` "`+srcPackage.PkgPath+`"`)
212217
}
213218

214219
output, err := findTarget(processInput{
@@ -251,12 +256,12 @@ func NewGenerator(options Options) (*Generator, error) {
251256

252257
func makeImports(imports []*ast.ImportSpec) []string {
253258
result := make([]string, len(imports))
254-
for _, i := range imports {
259+
for i, im := range imports {
255260
var name string
256-
if i.Name != nil {
257-
name = i.Name.Name
261+
if im.Name != nil {
262+
name = im.Name.Name
258263
}
259-
result = append(result, name+" "+i.Path.Value)
264+
result[i] = name + " " + im.Path.Value
260265
}
261266

262267
return result

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/gojuno/minimock/v3 v3.0.10
88
github.com/pkg/errors v0.9.1
99
github.com/stretchr/testify v1.8.4
10+
golang.org/x/text v0.3.7
1011
golang.org/x/tools v0.1.12
1112
)
1213

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
138138
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
139139
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
140140
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
141+
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
142+
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
141143
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
142144
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
143145
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=

0 commit comments

Comments
 (0)