blob: 38f2933722c2de275cb9613e304df3eb12e9e858 [file] [log] [blame]
// Copyright 2017 The LUCI Authors. All rights reserved.
// Use of this source code is governed under the Apache License, Version 2.0
// that can be found in the LICENSE file.
package cookflags
import (
"fmt"
"sort"
)
type flagDumper []string
func (f *flagDumper) str(name, val string) {
f.strDefault(name, val, "")
}
func (f *flagDumper) strDefault(name, val, dflt string) {
if val != dflt {
*f = append(*f, "-"+name, val)
}
}
func (f *flagDumper) list(name string, vals []string) {
arg := "-" + name
for _, v := range vals {
*f = append(*f, arg, v)
}
}
func (f *flagDumper) stringMap(name string, vals map[string]string) {
if len(vals) > 0 {
arg := "-" + name
keys := make([]string, 0, len(vals))
for k := range vals {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
v := vals[k]
if v == "" {
*f = append(*f, arg, k)
} else {
*f = append(*f, arg, fmt.Sprintf("%s=%s", k, v))
}
}
}
}
func (f *flagDumper) boolean(name string, val bool) {
if val {
*f = append(*f, "-"+name)
}
}