Skip to content

Commit e7a89ec

Browse files
authored
Merge pull request #3487 from yyy1000/multigroup
✨ Add multigroup flag in alpha generate subcommand
2 parents a632400 + 659edfa commit e7a89ec

File tree

2 files changed

+36
-4
lines changed

2 files changed

+36
-4
lines changed

pkg/rescaffold/migrate.go

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,24 @@ const DefaultOutputDir = "output-dir"
3636
func (opts *MigrateOptions) Rescaffold() error {
3737
config := yaml.New(machinery.Filesystem{FS: afero.NewOsFs()})
3838
if err := config.LoadFrom(opts.InputDir); err != nil {
39-
log.Fatal(err)
39+
log.Fatalf("Failed to load PROJECT file %v", err)
4040
}
4141
// create output directory
4242
// nolint: gosec
4343
if err := os.MkdirAll(opts.OutputDir, 0755); err != nil {
44-
log.Fatal(err)
44+
log.Fatalf("Failed to create output directory %v", err)
4545
}
4646
// use the new directory to set up the new project
4747
if err := os.Chdir(opts.OutputDir); err != nil {
48-
log.Fatal(err)
48+
log.Fatalf("Failed to change the current working directory %v", err)
4949
}
5050
// init project with plugins
5151
if err := kubebuilderInit(config); err != nil {
52-
log.Fatal(err)
52+
log.Fatalf("Failed to run init subcommand %v", err)
53+
}
54+
// call edit subcommands to enable or disable multigroup layout
55+
if err := kubebuilderEdit(config); err != nil {
56+
log.Fatalf("Failed to run edit subcommand %v", err)
5357
}
5458
return nil
5559
}
@@ -107,6 +111,14 @@ func kubebuilderInit(store store.Store) error {
107111
return util.RunCmd("kubebuilder init", "kubebuilder", args...)
108112
}
109113

114+
func kubebuilderEdit(store store.Store) error {
115+
if store.Config().IsMultiGroup() {
116+
args := []string{"edit", "--multigroup"}
117+
return util.RunCmd("kubebuilder edit", "kubebuilder", args...)
118+
}
119+
return nil
120+
}
121+
110122
func getInitArgs(store store.Store) []string {
111123
var args []string
112124
plugins := store.Config().GetPluginChain()

test/e2e/alphagenerate/generate_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,24 @@ func ReGenerateProject(kbc *utils.TestContext) {
9393
filepath.Join(kbc.Dir, "testdir", "PROJECT"), version)
9494
ExpectWithOffset(1, err).NotTo(HaveOccurred())
9595
ExpectWithOffset(1, fileContainsExpr).To(BeTrue())
96+
97+
By("editing a project with multigroup=true")
98+
err = kbc.Edit(
99+
"--multigroup=true",
100+
)
101+
ExpectWithOffset(1, err).NotTo(HaveOccurred())
102+
103+
By("regenerating the project at another output directory")
104+
err = kbc.Regenerate(
105+
"--input-dir", kbc.Dir,
106+
"--output-dir", filepath.Join(kbc.Dir, "testdir2"),
107+
)
108+
ExpectWithOffset(1, err).NotTo(HaveOccurred())
109+
110+
By("checking if the project file was generated with the expected multigroup flag")
111+
var multiGroup = `multigroup: true`
112+
fileContainsExpr, err = pluginutil.HasFileContentWith(
113+
filepath.Join(kbc.Dir, "testdir2", "PROJECT"), multiGroup)
114+
ExpectWithOffset(1, err).NotTo(HaveOccurred())
115+
ExpectWithOffset(1, fileContainsExpr).To(BeTrue())
96116
}

0 commit comments

Comments
 (0)