luci: Index | Examples | Files

package stringmapflag

import ""

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.


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": ""}


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 {

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


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



Package Files


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 5 packages (graph) and is imported by 16 packages. Updated 2021-01-20. Refresh now. Tools for package owners.