Merge pull request #111 from surajssd/suppress-warnings

Added flag `--suppress-warnings`, `--verbose`, `--error-on-warning` global flags
This commit is contained in:
Suraj Deshmukh 2016-09-17 19:18:20 +05:30 committed by GitHub
commit 1e581355c7
2 changed files with 33 additions and 0 deletions

View File

@ -45,10 +45,28 @@ const (
var inputFormat = "compose"
// Hook for erroring and exit out on warning
type errorOnWarningHook struct{}
func (errorOnWarningHook) Levels() []logrus.Level {
return []logrus.Level{logrus.WarnLevel}
}
func (errorOnWarningHook) Fire(entry *logrus.Entry) error {
logrus.Fatalln(entry.Message)
return nil
}
// BeforeApp is an action that is executed before any cli command.
func BeforeApp(c *cli.Context) error {
if c.GlobalBool("verbose") {
logrus.SetLevel(logrus.DebugLevel)
} else if c.GlobalBool("suppress-warnings") {
logrus.SetLevel(logrus.ErrorLevel)
} else if c.GlobalBool("error-on-warning") {
hook := errorOnWarningHook{}
logrus.AddHook(hook)
}
return nil
}

View File

@ -124,5 +124,20 @@ func CommonFlags() []cli.Flag {
Value: app.DefaultComposeFile,
EnvVar: "COMPOSE_FILE",
},
// creating a flag to suppress warnings
cli.BoolFlag{
Name: "suppress-warnings",
Usage: "Suppress all warnings",
},
// creating a flag to show all kinds of warnings
cli.BoolFlag{
Name: "verbose",
Usage: "Show all type of logs",
},
// flag to treat any warning as error
cli.BoolFlag{
Name: "error-on-warning",
Usage: "Treat any warning as error",
},
}
}