@@ -35,6 +35,7 @@ import (
3535 "github.com/kcp-dev/code-generator/v3/cmd/cluster-client-gen/generators/scheme"
3636 "github.com/kcp-dev/code-generator/v3/cmd/cluster-client-gen/generators/util"
3737 clientgentypes "github.com/kcp-dev/code-generator/v3/cmd/cluster-client-gen/types"
38+ "github.com/kcp-dev/code-generator/v3/pkg/imports"
3839)
3940
4041// NameSystems returns the name system used by the generators in this package.
@@ -128,7 +129,7 @@ func DefaultNameSystem() string {
128129 return "public"
129130}
130131
131- func targetForGroup (gv clientgentypes.GroupVersion , typeList []* types.Type , clientsetDir , clientsetPkg string , groupPkgName string , groupGoName string , apiPath string , inputPkg string , applyBuilderPkg string , boilerplate []byte , prefersProtobuf bool ) generator.Target {
132+ func targetForGroup (gv clientgentypes.GroupVersion , typeList []* types.Type , clientsetDir , clientsetPkg string , groupPkgName string , groupGoName string , apiPath string , inputPkg string , applyBuilderPkg string , singleClusterClientPkg string , boilerplate []byte , prefersProtobuf bool ) generator.Target {
132133 subdir := []string {"typed" , strings .ToLower (groupPkgName ), strings .ToLower (gv .Version .NonEmpty ())}
133134 gvDir := filepath .Join (clientsetDir , filepath .Join (subdir ... ))
134135 gvPkg := path .Join (clientsetPkg , path .Join (subdir ... ))
@@ -153,32 +154,34 @@ func targetForGroup(gv clientgentypes.GroupVersion, typeList []*types.Type, clie
153154 GoGenerator : generator.GoGenerator {
154155 OutputFilename : strings .ToLower (c .Namers ["private" ].Name (t )) + ".go" ,
155156 },
156- outputPackage : gvPkg ,
157- inputPackage : inputPkg ,
158- clientsetPackage : clientsetPkg ,
159- applyConfigurationPackage : applyBuilderPkg ,
160- group : gv .Group .NonEmpty (),
161- version : gv .Version .String (),
162- groupGoName : groupGoName ,
163- prefersProtobuf : prefersProtobuf ,
164- typeToMatch : t ,
165- imports : generator .NewImportTrackerForPackage (gvPkg ),
157+ outputPackage : gvPkg ,
158+ inputPackage : inputPkg ,
159+ clientsetPackage : clientsetPkg ,
160+ applyConfigurationPackage : applyBuilderPkg ,
161+ group : gv .Group .NonEmpty (),
162+ version : gv .Version .String (),
163+ groupGoName : groupGoName ,
164+ prefersProtobuf : prefersProtobuf ,
165+ typeToMatch : t ,
166+ imports : imports .NewImportTrackerForPackage (gvPkg ),
167+ singleClusterClientPackage : singleClusterClientPkg ,
166168 })
167169 }
168170
169171 generators = append (generators , & genGroup {
170172 GoGenerator : generator.GoGenerator {
171173 OutputFilename : groupPkgName + "_client.go" ,
172174 },
173- outputPackage : gvPkg ,
174- inputPackage : inputPkg ,
175- clientsetPackage : clientsetPkg ,
176- group : gv .Group .NonEmpty (),
177- version : gv .Version .String (),
178- groupGoName : groupGoName ,
179- apiPath : apiPath ,
180- types : typeList ,
181- imports : generator .NewImportTrackerForPackage (gvPkg ),
175+ outputPackage : gvPkg ,
176+ inputPackage : inputPkg ,
177+ clientsetPackage : clientsetPkg ,
178+ group : gv .Group .NonEmpty (),
179+ version : gv .Version .String (),
180+ groupGoName : groupGoName ,
181+ apiPath : apiPath ,
182+ types : typeList ,
183+ imports : imports .NewImportTrackerForPackage (gvPkg ),
184+ singleClusterClientPkg : singleClusterClientPkg ,
182185 })
183186
184187 expansionFileName := "generated_expansion.go"
@@ -212,10 +215,11 @@ func targetForClientset(args *args.Args, clientsetDir, clientsetPkg string, grou
212215 GoGenerator : generator.GoGenerator {
213216 OutputFilename : "clientset.go" ,
214217 },
215- groups : args .Groups ,
216- groupGoNames : groupGoNames ,
217- clientsetPackage : clientsetPkg ,
218- imports : generator .NewImportTrackerForPackage (clientsetPkg ),
218+ groups : args .Groups ,
219+ groupGoNames : groupGoNames ,
220+ clientsetPackage : clientsetPkg ,
221+ imports : imports .NewImportTrackerForPackage (clientsetPkg ),
222+ singleClusterClientPkg : args .SingleClusterClientPackage ,
219223 },
220224 }
221225 return generators
@@ -261,7 +265,7 @@ NextGroup:
261265 OutputPath : schemeDir ,
262266 Groups : args .Groups ,
263267 GroupGoNames : groupGoNames ,
264- ImportTracker : generator .NewImportTrackerForPackage (schemePkg ),
268+ ImportTracker : imports .NewImportTrackerForPackage (schemePkg ),
265269 CreateRegistry : internalClient ,
266270 },
267271 }
@@ -406,7 +410,7 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
406410 targetForScheme (args , clientsetDir , clientsetPkg , groupGoNames , boilerplate ))
407411 if args .FakeClient {
408412 targetList = append (targetList ,
409- fake .TargetForClientset (args , clientsetDir , clientsetPkg , args .ApplyConfigurationPackage , groupGoNames , boilerplate ))
413+ fake .TargetForClientset (args , clientsetDir , clientsetPkg , args .SingleClusterClientPackage , args . ApplyConfigurationPackage , groupGoNames , boilerplate ))
410414 }
411415
412416 // If --clientset-only=true, we don't regenerate the individual typed clients.
@@ -421,14 +425,15 @@ func GetTargets(context *generator.Context, args *args.Args) []generator.Target
421425 gv := clientgentypes.GroupVersion {Group : group .Group , Version : version .Version }
422426 types := gvToTypes [gv ]
423427 inputPath := gvPackages [gv ]
428+ singleClusterClientPkg := path .Join (args .SingleClusterClientPackage , "typed" , group .PackageName , version .String ())
424429 targetList = append (targetList ,
425430 targetForGroup (
426431 gv , orderer .OrderTypes (types ), clientsetDir , clientsetPkg ,
427432 group .PackageName , groupGoNames [gv ], args .ClientsetAPIPath ,
428- inputPath , args .ApplyConfigurationPackage , boilerplate , args .PrefersProtobuf ))
433+ inputPath , args .ApplyConfigurationPackage , singleClusterClientPkg , boilerplate , args .PrefersProtobuf ))
429434 if args .FakeClient {
430435 targetList = append (targetList ,
431- fake .TargetForGroup (gv , orderer .OrderTypes (types ), clientsetDir , clientsetPkg , group .PackageName , groupGoNames [gv ], inputPath , args .ApplyConfigurationPackage , boilerplate ))
436+ fake .TargetForGroup (gv , orderer .OrderTypes (types ), clientsetDir , clientsetPkg , group .PackageName , groupGoNames [gv ], inputPath , args .ApplyConfigurationPackage , singleClusterClientPkg , boilerplate ))
432437 }
433438 }
434439 }
0 commit comments