Merge pull request #225 from mumoshu/unmatched-selector-exit-code
feat: exit code 2 on unmatched selectors
This commit is contained in:
		
						commit
						013276f576
					
				
							
								
								
									
										19
									
								
								main.go
								
								
								
								
							
							
						
						
									
										19
									
								
								main.go
								
								
								
								
							|  | @ -26,7 +26,9 @@ const ( | ||||||
| 
 | 
 | ||||||
| var Version string | var Version string | ||||||
| 
 | 
 | ||||||
| func configure_logging(c *cli.Context) error { | var logger *zap.SugaredLogger | ||||||
|  | 
 | ||||||
|  | func configureLogging(c *cli.Context) error { | ||||||
| 	// Valid levels:
 | 	// Valid levels:
 | ||||||
| 	// https://github.com/uber-go/zap/blob/7e7e266a8dbce911a49554b945538c5b950196b8/zapcore/level.go#L126
 | 	// https://github.com/uber-go/zap/blob/7e7e266a8dbce911a49554b945538c5b950196b8/zapcore/level.go#L126
 | ||||||
| 	logLevel := c.GlobalString("log-level") | 	logLevel := c.GlobalString("log-level") | ||||||
|  | @ -38,7 +40,7 @@ func configure_logging(c *cli.Context) error { | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	logger := helmexec.NewLogger(os.Stdout, logLevel) | 	logger = helmexec.NewLogger(os.Stdout, logLevel) | ||||||
| 	if c.App.Metadata == nil { | 	if c.App.Metadata == nil { | ||||||
| 		// Auto-initialised in 1.19.0
 | 		// Auto-initialised in 1.19.0
 | ||||||
| 		// https://github.com/urfave/cli/blob/master/CHANGELOG.md#1190---2016-11-19
 | 		// https://github.com/urfave/cli/blob/master/CHANGELOG.md#1190---2016-11-19
 | ||||||
|  | @ -88,7 +90,7 @@ func main() { | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	app.Before = configure_logging | 	app.Before = configureLogging | ||||||
| 	app.Commands = []cli.Command{ | 	app.Commands = []cli.Command{ | ||||||
| 		{ | 		{ | ||||||
| 			Name:  "repos", | 			Name:  "repos", | ||||||
|  | @ -395,12 +397,12 @@ func eachDesiredStateDo(c *cli.Context, converge func(*state.HelmState, helmexec | ||||||
| 	} | 	} | ||||||
| 	allSelectorNotMatched := true | 	allSelectorNotMatched := true | ||||||
| 	for _, f := range desiredStateFiles { | 	for _, f := range desiredStateFiles { | ||||||
| 		state, helm, empty, err := loadDesiredStateFromFile(c, f) | 		state, helm, noReleases, err := loadDesiredStateFromFile(c, f) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		allSelectorNotMatched = allSelectorNotMatched && empty | 		allSelectorNotMatched = allSelectorNotMatched && noReleases | ||||||
| 		if empty { | 		if noReleases { | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		errs := converge(state, helm) | 		errs := converge(state, helm) | ||||||
|  | @ -409,7 +411,8 @@ func eachDesiredStateDo(c *cli.Context, converge func(*state.HelmState, helmexec | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	if allSelectorNotMatched { | 	if allSelectorNotMatched { | ||||||
| 		return fmt.Errorf("specified selector did not match any releases in any helmfile") | 		logger.Error("specified selector did not match any releases in any helmfile") | ||||||
|  | 		os.Exit(2) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  | @ -516,7 +519,7 @@ func loadDesiredStateFromFile(c *cli.Context, file string) (*state.HelmState, he | ||||||
| 		clean(st, errs) | 		clean(st, errs) | ||||||
| 	}() | 	}() | ||||||
| 
 | 
 | ||||||
| 	return st, helmexec.New(logger, kubeContext), false, nil | 	return st, helmexec.New(logger, kubeContext), len(st.Releases) == 0, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func clean(st *state.HelmState, errs []error) error { | func clean(st *state.HelmState, errs []error) error { | ||||||
|  |  | ||||||
|  | @ -613,11 +613,11 @@ func (state *HelmState) FilterReleases(labels []string) error { | ||||||
| 	for _, r := range releaseSet { | 	for _, r := range releaseSet { | ||||||
| 		filteredReleases = append(filteredReleases, r) | 		filteredReleases = append(filteredReleases, r) | ||||||
| 	} | 	} | ||||||
|  | 	state.Releases = filteredReleases | ||||||
| 	if len(filteredReleases) == 0 { | 	if len(filteredReleases) == 0 { | ||||||
| 		state.logger.Debugf("specified selector did not match any releases in %s\n", state.FilePath) | 		state.logger.Debugf("specified selector did not match any releases in %s\n", state.FilePath) | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 	state.Releases = filteredReleases |  | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue