From d4bc2351939ef5f3131619d60a209206f908c0b3 Mon Sep 17 00:00:00 2001 From: Dimitry Kolyshev Date: Mon, 9 Sep 2024 13:08:01 +0700 Subject: [PATCH] cmd: imp code --- internal/cmd/args.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/internal/cmd/args.go b/internal/cmd/args.go index 14e0c02ea..b12245785 100644 --- a/internal/cmd/args.go +++ b/internal/cmd/args.go @@ -1,7 +1,6 @@ package cmd import ( - "encoding" "flag" "fmt" "io" @@ -12,6 +11,7 @@ import ( "github.com/AdguardTeam/dnsproxy/internal/version" "github.com/AdguardTeam/golibs/errors" "github.com/AdguardTeam/golibs/osutil" + "github.com/AdguardTeam/golibs/timeutil" ) // Indexes to help with the [commandLineOptions] initialization. @@ -476,17 +476,16 @@ func defineFlagVar(flags *flag.FlagSet, value flag.Value, o *commandLineOption) } } -// defineTextUnmarshalerFlag defines a flag with for the specified -// [encoding.TextUnmarshaler] pointer and command line option. o must not be -// nil. -func defineTextUnmarshalerFlag( +// defineTimeDurationFlag defines a flag with for the specified +// [*timeutil.Duration] pointer and command line option. o must not be nil. +func defineTimeDurationFlag( flags *flag.FlagSet, - fieldPtr encoding.TextUnmarshaler, + fieldPtr *timeutil.Duration, o *commandLineOption, ) { - flags.TextVar(fieldPtr, o.long, fieldPtr.(encoding.TextMarshaler), o.description) + flags.TextVar(fieldPtr, o.long, *fieldPtr, o.description) if o.short != "" { - flags.TextVar(fieldPtr, o.short, fieldPtr.(encoding.TextMarshaler), o.description) + flags.TextVar(fieldPtr, o.short, *fieldPtr, o.description) } } @@ -510,8 +509,8 @@ func addOption(flags *flag.FlagSet, fieldPtr any, o *commandLineOption) { defineFlagVar(flags, newIntSliceValue(fieldPtr), o) case *[]string: defineFlagVar(flags, newStringSliceValue(fieldPtr), o) - case encoding.TextUnmarshaler: - defineTextUnmarshalerFlag(flags, fieldPtr, o) + case *timeutil.Duration: + defineTimeDurationFlag(flags, fieldPtr, o) default: panic(fmt.Errorf("unexpected field pointer type %T: %w", fieldPtr, errors.ErrBadEnumValue)) }