func (*ArgsSuite) TestAppendStringsUsage(c *gc.C) { for i, test := range []struct { message string args []string expectedValue []string }{{ message: "no args", }, { message: "value set by args", args: []string{"--value", "foo", "--value=bar"}, expectedValue: []string{"foo", "bar"}, }} { c.Log(fmt.Sprintf("%v: %s", i, test.message)) f := gnuflag.NewFlagSet("test", gnuflag.ContinueOnError) f.SetOutput(ioutil.Discard) var value []string f.Var(cmd.NewAppendStringsValue(&value), "value", "help") err := f.Parse(false, test.args) c.Check(err, gc.IsNil) c.Check(value, gc.DeepEquals, test.expectedValue) } }
func (c *DebugLogCommand) SetFlags(f *gnuflag.FlagSet) { c.EnvCommandBase.SetFlags(f) f.Var(cmd.NewAppendStringsValue(&c.params.IncludeEntity), "i", "only show log messages for these entities") f.Var(cmd.NewAppendStringsValue(&c.params.IncludeEntity), "include", "only show log messages for these entities") f.Var(cmd.NewAppendStringsValue(&c.params.ExcludeEntity), "x", "only show log messages for these entities") f.Var(cmd.NewAppendStringsValue(&c.params.ExcludeEntity), "exclude", "only show log messages for these entities") f.Var(cmd.NewAppendStringsValue(&c.params.IncludeModule), "include-module", "only show log messages for these logging modules") f.Var(cmd.NewAppendStringsValue(&c.params.ExcludeModule), "exclude-module", "do not show log messages for these logging modules") f.StringVar(&c.level, "l", "", "log level to show, one of [TRACE, DEBUG, INFO, WARNING, ERROR]") f.StringVar(&c.level, "level", "", "") f.UintVar(&c.params.Backlog, "n", defaultLineCount, "go back this many lines from the end before starting to filter") f.UintVar(&c.params.Backlog, "lines", defaultLineCount, "") f.UintVar(&c.params.Limit, "limit", 0, "show at most this many lines") f.BoolVar(&c.params.Replay, "replay", false, "start filtering from the start") }