mirror of
https://github.com/netsampler/goflow2.git
synced 2024-05-06 15:54:52 +00:00
* Improve format registration * less interleaving (json does not require importing protobuf) * generic text renderer * escape for strings in text/json formatter
39 lines
660 B
Go
39 lines
660 B
Go
package common
|
|
|
|
import (
|
|
"flag"
|
|
"strings"
|
|
"sync"
|
|
)
|
|
|
|
var (
|
|
selectorVar string
|
|
selector []string // Hashing fields
|
|
selectorMap = make(map[string]bool)
|
|
|
|
selectorDeclared bool
|
|
selectorDeclaredLock = &sync.Mutex{}
|
|
)
|
|
|
|
func SelectorFlag() {
|
|
selectorDeclaredLock.Lock()
|
|
defer selectorDeclaredLock.Unlock()
|
|
|
|
if selectorDeclared {
|
|
return
|
|
}
|
|
selectorDeclared = true
|
|
flag.StringVar(&selectorVar, "format.selector", "", "List of fields to do keep in output")
|
|
}
|
|
|
|
func ManualSelectorInit() error {
|
|
if selectorVar == "" {
|
|
return nil
|
|
}
|
|
selector = strings.Split(selectorVar, ",")
|
|
for _, v := range selector {
|
|
selectorMap[v] = true
|
|
}
|
|
return nil
|
|
}
|