Skip to content

Commit

Permalink
cmd: imp code
Browse files Browse the repository at this point in the history
  • Loading branch information
Mizzick committed Sep 9, 2024
1 parent ccb5798 commit d4bc235
Showing 1 changed file with 9 additions and 10 deletions.
19 changes: 9 additions & 10 deletions internal/cmd/args.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package cmd

import (
"encoding"
"flag"
"fmt"
"io"
Expand All @@ -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.
Expand Down Expand Up @@ -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)
}
}

Expand All @@ -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))
}
Expand Down

0 comments on commit d4bc235

Please sign in to comment.