luci: go.chromium.org/luci/common/flag/stringmapflag Index | Examples | Files

package stringmapflag

import "go.chromium.org/luci/common/flag/stringmapflag"

Package stringmapflag provides a flag.Value that, when parsed, augments a map[string]string with the supplied parameter. The parameter is expressed as a key[=value] option.

Example

Assuming the flag option, "opt", is bound to a stringmapflag.Value, and the following arguments are parsed:

-opt foo=bar
-opt baz

The resulting map would be equivalent to: map[string]string {"foo": "bar", "baz": ""}

Code:

v := new(Value)
fs := flag.NewFlagSet("test", flag.ContinueOnError)
fs.Var(v, "option", "Appends a key[=value] option.")

// Simulate user input.
if err := fs.Parse([]string{
    "-option", "foo=bar",
    "-option", "baz",
}); err != nil {
    panic(err)
}

m, _ := json.MarshalIndent(v, "", "  ")
fmt.Println("Parsed options:", string(m))

Output:

Parsed options: {
  "baz": "",
  "foo": "bar"
}

Index

Examples

Package Files

stringmapflag.go

type Value Uses

type Value map[string]string

Value is a flag.Value implementation that stores arbitrary "key[=value]" command-line flags as a string map.

func (*Value) Set Uses

func (v *Value) Set(key string) error

Set implements flag.Value.

func (*Value) String Uses

func (v *Value) String() string

Package stringmapflag imports 4 packages (graph) and is imported by 9 packages. Updated 2018-12-16. Refresh now. Tools for package owners.