You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
components/flags.go

30 lines
508 B
Go

package components
import (
"fmt"
"github.com/urfave/cli/v2"
"go-micro.dev/v4/logger"
)
func FilterDuplicateFlags(flags []cli.Flag) []cli.Flag {
flagMap := make(map[string]cli.Flag, 0)
for _, f := range flags {
if _, ok := flagMap[f.Names()[0]]; !ok {
flagMap[f.Names()[0]] = f
} else {
logger.Warn(fmt.Sprintf("Duplicated flag '%s' found", f.Names()[0]))
}
}
result := make([]cli.Flag, len(flagMap))
i := 0
for _, f := range flagMap {
result[i] = f
i += 1
}
return result
}