feat: exit code 2 on unmatched selectors
Along with the fix for the bug introduced via #217 Resolves #219
This commit is contained in:
parent
a5d42e741b
commit
3a16b7ed91
19
main.go
19
main.go
|
|
@ -26,7 +26,9 @@ const (
|
|||
|
||||
var Version string
|
||||
|
||||
func configure_logging(c *cli.Context) error {
|
||||
var logger *zap.SugaredLogger
|
||||
|
||||
func configureLogging(c *cli.Context) error {
|
||||
// Valid levels:
|
||||
// https://github.com/uber-go/zap/blob/7e7e266a8dbce911a49554b945538c5b950196b8/zapcore/level.go#L126
|
||||
logLevel := c.GlobalString("log-level")
|
||||
|
|
@ -38,7 +40,7 @@ func configure_logging(c *cli.Context) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
logger := helmexec.NewLogger(os.Stdout, logLevel)
|
||||
logger = helmexec.NewLogger(os.Stdout, logLevel)
|
||||
if c.App.Metadata == nil {
|
||||
// Auto-initialised in 1.19.0
|
||||
// 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{
|
||||
{
|
||||
Name: "repos",
|
||||
|
|
@ -395,12 +397,12 @@ func eachDesiredStateDo(c *cli.Context, converge func(*state.HelmState, helmexec
|
|||
}
|
||||
allSelectorNotMatched := true
|
||||
for _, f := range desiredStateFiles {
|
||||
state, helm, empty, err := loadDesiredStateFromFile(c, f)
|
||||
state, helm, noReleases, err := loadDesiredStateFromFile(c, f)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
allSelectorNotMatched = allSelectorNotMatched && empty
|
||||
if empty {
|
||||
allSelectorNotMatched = allSelectorNotMatched && noReleases
|
||||
if noReleases {
|
||||
continue
|
||||
}
|
||||
errs := converge(state, helm)
|
||||
|
|
@ -409,7 +411,8 @@ func eachDesiredStateDo(c *cli.Context, converge func(*state.HelmState, helmexec
|
|||
}
|
||||
}
|
||||
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
|
||||
}
|
||||
|
|
@ -516,7 +519,7 @@ func loadDesiredStateFromFile(c *cli.Context, file string) (*state.HelmState, he
|
|||
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 {
|
||||
|
|
|
|||
|
|
@ -613,11 +613,11 @@ func (state *HelmState) FilterReleases(labels []string) error {
|
|||
for _, r := range releaseSet {
|
||||
filteredReleases = append(filteredReleases, r)
|
||||
}
|
||||
state.Releases = filteredReleases
|
||||
if len(filteredReleases) == 0 {
|
||||
state.logger.Debugf("specified selector did not match any releases in %s\n", state.FilePath)
|
||||
return nil
|
||||
}
|
||||
state.Releases = filteredReleases
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue