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