Skip to content

Commit ae56946

Browse files
committed
internal/flags: remove low-use type TextMarshalerFlag (ethereum#30707)
1 parent a6192a5 commit ae56946

File tree

4 files changed

+9
-123
lines changed

4 files changed

+9
-123
lines changed

cmd/XDC/chaincmd.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import (
3434
"github.com/XinFinOrg/XDPoSChain/core/types"
3535
"github.com/XinFinOrg/XDPoSChain/eth/downloader"
3636
"github.com/XinFinOrg/XDPoSChain/event"
37-
"github.com/XinFinOrg/XDPoSChain/internal/flags"
3837
"github.com/XinFinOrg/XDPoSChain/log"
3938
"github.com/XinFinOrg/XDPoSChain/metrics"
4039
"github.com/urfave/cli/v2"
@@ -409,7 +408,10 @@ func copyDb(ctx *cli.Context) error {
409408
chain, chainDb := utils.MakeChain(ctx, stack)
410409
defer chainDb.Close()
411410

412-
syncmode := *flags.GlobalTextMarshaler(ctx, utils.SyncModeFlag.Name).(*downloader.SyncMode)
411+
var syncmode downloader.SyncMode
412+
if err := syncmode.UnmarshalText([]byte(ctx.String(utils.SyncModeFlag.Name))); err != nil {
413+
utils.Fatalf("invalid --syncmode flag: %v", err)
414+
}
413415
dl := downloader.New(syncmode, chainDb, new(event.TypeMux), chain, nil, nil, nil)
414416

415417
// Create a source peer to satisfy downloader requests from

cmd/utils/flags.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,10 @@ var (
129129
Category: flags.APICategory,
130130
}
131131

132-
defaultSyncMode = ethconfig.Defaults.SyncMode
133-
SyncModeFlag = &flags.TextMarshalerFlag{
132+
SyncModeFlag = &cli.StringFlag{
134133
Name: "syncmode",
135134
Usage: `Blockchain sync mode ("fast", "full", or "light")`,
136-
Value: &defaultSyncMode,
135+
Value: ethconfig.Defaults.SyncMode.String(),
137136
Category: flags.EthCategory,
138137
}
139138
GCModeFlag = &cli.StringFlag{
@@ -1340,7 +1339,9 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
13401339

13411340
switch {
13421341
case ctx.IsSet(SyncModeFlag.Name):
1343-
cfg.SyncMode = *flags.GlobalTextMarshaler(ctx, SyncModeFlag.Name).(*downloader.SyncMode)
1342+
if err = cfg.SyncMode.UnmarshalText([]byte(ctx.String(SyncModeFlag.Name))); err != nil {
1343+
Fatalf("invalid --syncmode flag: %v", err)
1344+
}
13441345
case ctx.Bool(FastSyncFlag.Name):
13451346
cfg.SyncMode = downloader.FastSync
13461347
case ctx.Bool(LightModeFlag.Name):

internal/flags/flags.go

Lines changed: 0 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package flags
1818

1919
import (
20-
"encoding"
2120
"errors"
2221
"flag"
2322
"fmt"
@@ -122,119 +121,6 @@ func (f *DirectoryFlag) GetDefaultText() string {
122121
return f.GetValue()
123122
}
124123

125-
type TextMarshaler interface {
126-
encoding.TextMarshaler
127-
encoding.TextUnmarshaler
128-
}
129-
130-
// textMarshalerVal turns a TextMarshaler into a flag.Value
131-
type textMarshalerVal struct {
132-
v TextMarshaler
133-
}
134-
135-
func (v textMarshalerVal) String() string {
136-
if v.v == nil {
137-
return ""
138-
}
139-
text, _ := v.v.MarshalText()
140-
return string(text)
141-
}
142-
143-
func (v textMarshalerVal) Set(s string) error {
144-
return v.v.UnmarshalText([]byte(s))
145-
}
146-
147-
var (
148-
_ cli.Flag = (*TextMarshalerFlag)(nil)
149-
_ cli.RequiredFlag = (*TextMarshalerFlag)(nil)
150-
_ cli.VisibleFlag = (*TextMarshalerFlag)(nil)
151-
_ cli.DocGenerationFlag = (*TextMarshalerFlag)(nil)
152-
_ cli.CategorizableFlag = (*TextMarshalerFlag)(nil)
153-
)
154-
155-
// TextMarshalerFlag wraps a TextMarshaler value.
156-
type TextMarshalerFlag struct {
157-
Name string
158-
159-
Category string
160-
DefaultText string
161-
Usage string
162-
163-
Required bool
164-
Hidden bool
165-
HasBeenSet bool
166-
167-
Value TextMarshaler
168-
169-
Aliases []string
170-
EnvVars []string
171-
}
172-
173-
// For cli.Flag:
174-
175-
func (f *TextMarshalerFlag) Names() []string { return append([]string{f.Name}, f.Aliases...) }
176-
func (f *TextMarshalerFlag) IsSet() bool { return f.HasBeenSet }
177-
func (f *TextMarshalerFlag) String() string { return cli.FlagStringer(f) }
178-
179-
func (f *TextMarshalerFlag) Apply(set *flag.FlagSet) error {
180-
for _, envVar := range f.EnvVars {
181-
envVar = strings.TrimSpace(envVar)
182-
if value, found := syscall.Getenv(envVar); found {
183-
if err := f.Value.UnmarshalText([]byte(value)); err != nil {
184-
return fmt.Errorf("could not parse %q from environment variable %q for flag %s: %s", value, envVar, f.Name, err)
185-
}
186-
f.HasBeenSet = true
187-
break
188-
}
189-
}
190-
eachName(f, func(name string) {
191-
set.Var(textMarshalerVal{f.Value}, name, f.Usage)
192-
})
193-
return nil
194-
}
195-
196-
// For cli.RequiredFlag:
197-
198-
func (f *TextMarshalerFlag) IsRequired() bool { return f.Required }
199-
200-
// For cli.VisibleFlag:
201-
202-
func (f *TextMarshalerFlag) IsVisible() bool { return !f.Hidden }
203-
204-
// For cli.CategorizableFlag:
205-
206-
func (f *TextMarshalerFlag) GetCategory() string { return f.Category }
207-
208-
// For cli.DocGenerationFlag:
209-
210-
func (f *TextMarshalerFlag) TakesValue() bool { return true }
211-
func (f *TextMarshalerFlag) GetUsage() string { return f.Usage }
212-
func (f *TextMarshalerFlag) GetEnvVars() []string { return f.EnvVars }
213-
214-
func (f *TextMarshalerFlag) GetValue() string {
215-
t, err := f.Value.MarshalText()
216-
if err != nil {
217-
return "(ERR: " + err.Error() + ")"
218-
}
219-
return string(t)
220-
}
221-
222-
func (f *TextMarshalerFlag) GetDefaultText() string {
223-
if f.DefaultText != "" {
224-
return f.DefaultText
225-
}
226-
return f.GetValue()
227-
}
228-
229-
// GlobalTextMarshaler returns the value of a TextMarshalerFlag from the global flag set.
230-
func GlobalTextMarshaler(ctx *cli.Context, name string) TextMarshaler {
231-
val := ctx.Generic(name)
232-
if val == nil {
233-
return nil
234-
}
235-
return val.(textMarshalerVal).v
236-
}
237-
238124
var (
239125
_ cli.Flag = (*BigFlag)(nil)
240126
_ cli.RequiredFlag = (*BigFlag)(nil)

internal/flags/helpers.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,6 @@ func AutoEnvVars(flags []cli.Flag, prefix string) {
255255
case *BigFlag:
256256
flag.EnvVars = append(flag.EnvVars, envvar)
257257

258-
case *TextMarshalerFlag:
259-
flag.EnvVars = append(flag.EnvVars, envvar)
260-
261258
case *DirectoryFlag:
262259
flag.EnvVars = append(flag.EnvVars, envvar)
263260
}

0 commit comments

Comments
 (0)