From 5cf508aace3f3b0b3e041a4e9c5c7cb26ff34f0e Mon Sep 17 00:00:00 2001 From: yyy1000 <992364620@qq.com> Date: Wed, 5 Jul 2023 20:26:27 +0800 Subject: [PATCH] feat: add multigroup flag --- pkg/rescaffold/migrate.go | 12 ++++++++++++ test/e2e/alphagenerate/generate_test.go | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/pkg/rescaffold/migrate.go b/pkg/rescaffold/migrate.go index caf069e93e7..978e96fdee0 100644 --- a/pkg/rescaffold/migrate.go +++ b/pkg/rescaffold/migrate.go @@ -51,6 +51,10 @@ func (opts *MigrateOptions) Rescaffold() error { if err := kubebuilderInit(config); err != nil { log.Fatal(err) } + // call edit subcommands to enable or disable multigroup layout + if err := kubebuilderEdit(config); err != nil { + log.Fatal(err) + } return nil } @@ -107,6 +111,14 @@ func kubebuilderInit(store store.Store) error { return util.RunCmd("kubebuilder init", "kubebuilder", args...) } +func kubebuilderEdit(store store.Store) error { + if store.Config().IsMultiGroup() { + args := []string{"edit", "--multigroup"} + return util.RunCmd("kubebuilder edit", "kubebuilder", args...) + } + return nil +} + func getInitArgs(store store.Store) []string { var args []string plugins := store.Config().GetPluginChain() diff --git a/test/e2e/alphagenerate/generate_test.go b/test/e2e/alphagenerate/generate_test.go index b2d455a5131..d20dfdd21fd 100644 --- a/test/e2e/alphagenerate/generate_test.go +++ b/test/e2e/alphagenerate/generate_test.go @@ -93,4 +93,24 @@ func ReGenerateProject(kbc *utils.TestContext) { filepath.Join(kbc.Dir, "testdir", "PROJECT"), version) ExpectWithOffset(1, err).NotTo(HaveOccurred()) ExpectWithOffset(1, fileContainsExpr).To(BeTrue()) + + By("editing a project with multigroup=true") + err = kbc.Edit( + "--multigroup=true", + ) + ExpectWithOffset(1, err).NotTo(HaveOccurred()) + + By("regenerating the project at another output directory") + err = kbc.Regenerate( + "--input-dir", kbc.Dir, + "--output-dir", filepath.Join(kbc.Dir, "testdir2"), + ) + ExpectWithOffset(1, err).NotTo(HaveOccurred()) + + By("checking if the project file was generated with the expected multigroup flag") + var multiGroup = `multigroup: true` + fileContainsExpr, err = pluginutil.HasFileContentWith( + filepath.Join(kbc.Dir, "testdir2", "PROJECT"), multiGroup) + ExpectWithOffset(1, err).NotTo(HaveOccurred()) + ExpectWithOffset(1, fileContainsExpr).To(BeTrue()) }