mirror of
https://github.com/netsampler/goflow2.git
synced 2024-05-06 15:54:52 +00:00
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
|
||
|
}
|