Files
tinyauth/internal/utils/decoders/flags_decoder.go
Stavros 1ad862d86c wip
2025-11-04 17:37:40 +02:00

35 lines
567 B
Go

package decoders
import (
"strings"
"github.com/traefik/paerser/flag"
)
func DecodeFlags[T any](args []string) (T, error) {
var target T
var formatted = []string{}
for _, arg := range args {
argFmt := strings.TrimPrefix(arg, "--")
argParts := strings.SplitN(argFmt, "=", 2)
if len(argParts) != 2 {
continue
}
key := argParts[0]
value := argParts[1]
formatted = append(formatted, "--"+strings.ReplaceAll(key, "-", ".")+"="+value)
}
err := flag.Decode(formatted, &target)
if err != nil {
return target, err
}
return target, nil
}