@@ -52,12 +52,12 @@ func (opts *Generate) Generate() error {
5252 }
5353
5454 if opts .OutputDir == "" {
55- cwd , err := os .Getwd ()
56- if err != nil {
57- return fmt .Errorf ("failed to get working directory: %w" , err )
55+ cwd , getWdErr := os .Getwd ()
56+ if getWdErr != nil {
57+ return fmt .Errorf ("failed to get working directory: %w" , getWdErr )
5858 }
5959 opts .OutputDir = cwd
60- if _ , err : = os .Stat (opts .OutputDir ); err == nil {
60+ if _ , err = os .Stat (opts .OutputDir ); err == nil {
6161 log .Warn ("Using current working directory to re-scaffold the project" )
6262 log .Warn ("This directory will be cleaned up and all files removed before the re-generation" )
6363
@@ -69,40 +69,41 @@ func (opts *Generate) Generate() error {
6969 err = util .RunCmd ("Running cleanup" , "sh" , "-c" , cleanupCmd )
7070 if err != nil {
7171 log .Error ("Cleanup failed:" , err )
72- return err
72+ return fmt . Errorf ( "cleanup failed: %w" , err )
7373 }
7474 }
7575 }
7676
77- if err : = createDirectory (opts .OutputDir ); err != nil {
78- return err
77+ if err = createDirectory (opts .OutputDir ); err != nil {
78+ return fmt . Errorf ( "error creating output directory %q: %w" , opts . OutputDir , err )
7979 }
8080
81- if err : = changeWorkingDirectory (opts .OutputDir ); err != nil {
82- return err
81+ if err = changeWorkingDirectory (opts .OutputDir ); err != nil {
82+ return fmt . Errorf ( "error changing working directory %q: %w" , opts . OutputDir , err )
8383 }
8484
85- if err : = kubebuilderInit (projectConfig ); err != nil {
86- return err
85+ if err = kubebuilderInit (projectConfig ); err != nil {
86+ return fmt . Errorf ( "error initializing project config: %w" , err )
8787 }
8888
89- if err : = kubebuilderEdit (projectConfig ); err != nil {
90- return err
89+ if err = kubebuilderEdit (projectConfig ); err != nil {
90+ return fmt . Errorf ( "error editing project config: %w" , err )
9191 }
9292
93- if err : = kubebuilderCreate (projectConfig ); err != nil {
94- return err
93+ if err = kubebuilderCreate (projectConfig ); err != nil {
94+ return fmt . Errorf ( "error creating project config: %w" , err )
9595 }
9696
97- if err : = migrateGrafanaPlugin (projectConfig , opts .InputDir , opts .OutputDir ); err != nil {
98- return err
97+ if err = migrateGrafanaPlugin (projectConfig , opts .InputDir , opts .OutputDir ); err != nil {
98+ return fmt . Errorf ( "error migrating Grafana plugin: %w" , err )
9999 }
100100
101101 if hasHelmPlugin (projectConfig ) {
102- if err : = kubebuilderHelmEdit (); err != nil {
103- return err
102+ if err = kubebuilderHelmEdit (); err != nil {
103+ return fmt . Errorf ( "error editing Helm plugin: %w" , err )
104104 }
105105 }
106+
106107 return migrateDeployImagePlugin (projectConfig )
107108}
108109
@@ -111,7 +112,7 @@ func (opts *Generate) Validate() error {
111112 var err error
112113 opts .InputDir , err = getInputPath (opts .InputDir )
113114 if err != nil {
114- return err
115+ return fmt . Errorf ( "error getting input path %q: %w" , opts . InputDir , err )
115116 }
116117
117118 _ , err = exec .LookPath ("kubebuilder" )
@@ -134,31 +135,38 @@ func loadProjectConfig(inputDir string) (store.Store, error) {
134135// Helper function to create the output directory.
135136func createDirectory (outputDir string ) error {
136137 if err := os .MkdirAll (outputDir , 0o755 ); err != nil {
137- return fmt .Errorf ("failed to create output directory %s : %w" , outputDir , err )
138+ return fmt .Errorf ("failed to create output directory %q : %w" , outputDir , err )
138139 }
139140 return nil
140141}
141142
142143// Helper function to change the current working directory.
143144func changeWorkingDirectory (outputDir string ) error {
144145 if err := os .Chdir (outputDir ); err != nil {
145- return fmt .Errorf ("failed to change the working directory to %s : %w" , outputDir , err )
146+ return fmt .Errorf ("failed to change the working directory to %q : %w" , outputDir , err )
146147 }
147148 return nil
148149}
149150
150151// Initializes the project with Kubebuilder.
151152func kubebuilderInit (s store.Store ) error {
152153 args := append ([]string {"init" }, getInitArgs (s )... )
153- return util .RunCmd ("kubebuilder init" , "kubebuilder" , args ... )
154+ if err := util .RunCmd ("kubebuilder init" , "kubebuilder" , args ... ); err != nil {
155+ return fmt .Errorf ("failed to run kubebuilder init command: %w" , err )
156+ }
157+
158+ return nil
154159}
155160
156161// Edits the project to enable or disable multigroup layout.
157162func kubebuilderEdit (s store.Store ) error {
158163 if s .Config ().IsMultiGroup () {
159164 args := []string {"edit" , "--multigroup" }
160- return util .RunCmd ("kubebuilder edit" , "kubebuilder" , args ... )
165+ if err := util .RunCmd ("kubebuilder edit" , "kubebuilder" , args ... ); err != nil {
166+ return fmt .Errorf ("failed to run kubebuilder edit command: %w" , err )
167+ }
161168 }
169+
162170 return nil
163171}
164172
@@ -171,15 +179,15 @@ func kubebuilderCreate(s store.Store) error {
171179
172180 // First, scaffold all APIs
173181 for _ , r := range resources {
174- if err : = createAPI (r ); err != nil {
182+ if err = createAPI (r ); err != nil {
175183 return fmt .Errorf ("failed to create API for %s/%s/%s: %w" , r .Group , r .Version , r .Kind , err )
176184 }
177185 }
178186
179187 // Then, scaffold all webhooks
180188 // We cannot create a webhook for an API that does not exist
181189 for _ , r := range resources {
182- if err : = createWebhook (r ); err != nil {
190+ if err = createWebhook (r ); err != nil {
183191 return fmt .Errorf ("failed to create webhook for %s/%s/%s: %w" , r .Group , r .Version , r .Kind , err )
184192 }
185193 }
@@ -198,12 +206,12 @@ func migrateGrafanaPlugin(s store.Store, src, des string) error {
198206 return fmt .Errorf ("failed to decode grafana plugin config: %w" , err )
199207 }
200208
201- if err : = kubebuilderGrafanaEdit (); err != nil {
202- return err
209+ if err = kubebuilderGrafanaEdit (); err != nil {
210+ return fmt . Errorf ( "error editing Grafana plugin: %w" , err )
203211 }
204212
205- if err : = grafanaConfigMigrate (src , des ); err != nil {
206- return err
213+ if err = grafanaConfigMigrate (src , des ); err != nil {
214+ return fmt . Errorf ( "error migrating Grafana config: %w" , err )
207215 }
208216
209217 return kubebuilderGrafanaEdit ()
@@ -233,7 +241,11 @@ func migrateDeployImagePlugin(s store.Store) error {
233241func createAPIWithDeployImage (resourceData v1alpha1.ResourceData ) error {
234242 args := append ([]string {"create" , "api" }, getGVKFlagsFromDeployImage (resourceData )... )
235243 args = append (args , getDeployImageOptions (resourceData )... )
236- return util .RunCmd ("kubebuilder create api" , "kubebuilder" , args ... )
244+ if err := util .RunCmd ("kubebuilder create api" , "kubebuilder" , args ... ); err != nil {
245+ return fmt .Errorf ("failed to run kubebuilder create api command: %w" , err )
246+ }
247+
248+ return nil
237249}
238250
239251// Helper function to get input path.
@@ -247,7 +259,7 @@ func getInputPath(inputPath string) (string, error) {
247259 }
248260 projectPath := fmt .Sprintf ("%s/%s" , inputPath , yaml .DefaultPath )
249261 if _ , err := os .Stat (projectPath ); os .IsNotExist (err ) {
250- return "" , fmt .Errorf ("project path %s does not exist: %w" , projectPath , err )
262+ return "" , fmt .Errorf ("project path %q does not exist: %w" , projectPath , err )
251263 }
252264 return inputPath , nil
253265}
@@ -349,7 +361,11 @@ func createAPI(res resource.Resource) error {
349361 args = append (args , "--external-api-domain" , res .Domain )
350362 }
351363
352- return util .RunCmd ("kubebuilder create api" , "kubebuilder" , args ... )
364+ if err := util .RunCmd ("kubebuilder create api" , "kubebuilder" , args ... ); err != nil {
365+ return fmt .Errorf ("failed to run kubebuilder create api command: %w" , err )
366+ }
367+
368+ return nil
353369}
354370
355371// Gets flags for API resource creation.
@@ -381,7 +397,12 @@ func createWebhook(res resource.Resource) error {
381397 }
382398 args := append ([]string {"create" , "webhook" }, getGVKFlags (res )... )
383399 args = append (args , getWebhookResourceFlags (res )... )
384- return util .RunCmd ("kubebuilder create webhook" , "kubebuilder" , args ... )
400+
401+ if err := util .RunCmd ("kubebuilder create webhook" , "kubebuilder" , args ... ); err != nil {
402+ return fmt .Errorf ("failed to run kubebuilder create webhook command: %w" , err )
403+ }
404+
405+ return nil
385406}
386407
387408// Gets flags for webhook creation.
@@ -412,9 +433,13 @@ func getWebhookResourceFlags(res resource.Resource) []string {
412433func copyFile (src , des string ) error {
413434 bytesRead , err := os .ReadFile (src )
414435 if err != nil {
415- return fmt .Errorf ("source file path %s does not exist: %w" , src , err )
436+ return fmt .Errorf ("source file path %q does not exist: %w" , src , err )
416437 }
417- return os .WriteFile (des , bytesRead , 0o755 )
438+ if err = os .WriteFile (des , bytesRead , 0o755 ); err != nil {
439+ return fmt .Errorf ("failed to write file %q: %w" , des , err )
440+ }
441+
442+ return nil
418443}
419444
420445// Migrates Grafana configuration files.
0 commit comments