mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2025-11-05 00:25:49 +00:00
35 lines
567 B
Go
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
|
|
}
|