From a88ddb5cd7e1e0d399a34d95d52b99c0981aba74 Mon Sep 17 00:00:00 2001 From: sunnyraindy Date: Sat, 15 Nov 2025 11:19:28 +0800 Subject: [PATCH] refactor: replace interface{} with any for clarity and modernization Signed-off-by: sunnyraindy --- addons/graffiti_wall_writer/config.go | 14 +++++------ bindings/utils/json/json.go | 4 +-- shared/types/config/parameter.go | 36 +++++++++++++-------------- shared/utils/log/logger.go | 12 ++++----- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/addons/graffiti_wall_writer/config.go b/addons/graffiti_wall_writer/config.go index affa8b560..b752227a7 100644 --- a/addons/graffiti_wall_writer/config.go +++ b/addons/graffiti_wall_writer/config.go @@ -40,7 +40,7 @@ func NewConfig() *GraffitiWallWriterConfig { Name: "Enabled", Description: "Enable the Graffiti Wall Writer", Type: config.ParameterType_Bool, - Default: map[config.Network]interface{}{config.Network_All: false}, + Default: map[config.Network]any{config.Network_All: false}, AffectsContainers: []config.ContainerID{ContainerID_GraffitiWallWriter, config.ContainerID_Validator}, CanBeBlank: false, OverwriteOnUpgrade: false, @@ -51,7 +51,7 @@ func NewConfig() *GraffitiWallWriterConfig { Name: "Input URL", Description: "URL or filepath for the input JSON file that contains the graffiti image to write to the wall. By default, this is the Rocket Pool logo.\n\nSee https://gist.github.com/RomiRand/dfa1b5286af3e926deff0be2746db2df for info on making your own images.\n\nNOTE: for local files, you must manually put the file into the `addons/gww` folder of your `rocketpool` directory, and then enter the name of it as `/gww/` here.", Type: config.ParameterType_String, - Default: map[config.Network]interface{}{config.Network_All: "https://cdn-rocketpool.s3.us-west-2.amazonaws.com/graffiti.json"}, + Default: map[config.Network]any{config.Network_All: "https://cdn-rocketpool.s3.us-west-2.amazonaws.com/graffiti.json"}, AffectsContainers: []config.ContainerID{ContainerID_GraffitiWallWriter}, CanBeBlank: true, OverwriteOnUpgrade: false, @@ -62,7 +62,7 @@ func NewConfig() *GraffitiWallWriterConfig { Name: "Wall Update Interval", Description: "The time, in seconds, between updating the beaconcha.in graffiti wall canvas", Type: config.ParameterType_Uint, - Default: map[config.Network]interface{}{config.Network_All: uint64(600)}, + Default: map[config.Network]any{config.Network_All: uint64(600)}, AffectsContainers: []config.ContainerID{ContainerID_GraffitiWallWriter}, CanBeBlank: true, OverwriteOnUpgrade: false, @@ -73,7 +73,7 @@ func NewConfig() *GraffitiWallWriterConfig { Name: "Input Update Interval", Description: "The time, in seconds, between input updates - only if remote URL is used. File will be instantly reloaded when changed.", Type: config.ParameterType_Uint, - Default: map[config.Network]interface{}{config.Network_All: uint64(600)}, + Default: map[config.Network]any{config.Network_All: uint64(600)}, AffectsContainers: []config.ContainerID{ContainerID_GraffitiWallWriter}, CanBeBlank: true, OverwriteOnUpgrade: false, @@ -84,7 +84,7 @@ func NewConfig() *GraffitiWallWriterConfig { Name: "Pixel Update Interval", Description: "The time, in seconds, between output updates.", Type: config.ParameterType_Uint, - Default: map[config.Network]interface{}{config.Network_All: uint64(60)}, + Default: map[config.Network]any{config.Network_All: uint64(60)}, AffectsContainers: []config.ContainerID{ContainerID_GraffitiWallWriter}, CanBeBlank: true, OverwriteOnUpgrade: false, @@ -95,7 +95,7 @@ func NewConfig() *GraffitiWallWriterConfig { Name: "Container Tag", Description: "The tag name of the container you want to use on Docker Hub.", Type: config.ParameterType_String, - Default: map[config.Network]interface{}{config.Network_All: containerTag}, + Default: map[config.Network]any{config.Network_All: containerTag}, AffectsContainers: []config.ContainerID{ContainerID_GraffitiWallWriter}, CanBeBlank: false, OverwriteOnUpgrade: true, @@ -106,7 +106,7 @@ func NewConfig() *GraffitiWallWriterConfig { Name: "Additional Flags", Description: "Additional custom command line flags you want to pass to the addon, to take advantage of other settings that the Smartnode's configuration doesn't cover.", Type: config.ParameterType_String, - Default: map[config.Network]interface{}{config.Network_All: ""}, + Default: map[config.Network]any{config.Network_All: ""}, AffectsContainers: []config.ContainerID{ContainerID_GraffitiWallWriter}, CanBeBlank: true, OverwriteOnUpgrade: false, diff --git a/bindings/utils/json/json.go b/bindings/utils/json/json.go index ec15a007b..531fa4254 100644 --- a/bindings/utils/json/json.go +++ b/bindings/utils/json/json.go @@ -5,11 +5,11 @@ import ( "fmt" ) -func Marshal(v interface{}) ([]byte, error) { +func Marshal(v any) ([]byte, error) { return json.Marshal(v) } -func Unmarshal(data []byte, v interface{}) error { +func Unmarshal(data []byte, v any) error { err := json.Unmarshal(data, v) if err != nil { return fmt.Errorf("%w\nUnable to Unmarshal JSON string %s", err, string(data)) diff --git a/shared/types/config/parameter.go b/shared/types/config/parameter.go index 589e0a335..f29aebad4 100644 --- a/shared/types/config/parameter.go +++ b/shared/types/config/parameter.go @@ -9,27 +9,27 @@ import ( // A parameter that can be configured by the user type Parameter struct { - ID string `yaml:"id,omitempty"` - Name string `yaml:"name,omitempty"` - Description string `yaml:"description,omitempty"` - Type ParameterType `yaml:"type,omitempty"` - Default map[Network]interface{} `yaml:"default,omitempty"` - MaxLength int `yaml:"maxLength,omitempty"` - Regex string `yaml:"regex,omitempty"` - Advanced bool `yaml:"advanced,omitempty"` - AffectsContainers []ContainerID `yaml:"affectsContainers,omitempty"` - CanBeBlank bool `yaml:"canBeBlank,omitempty"` - OverwriteOnUpgrade bool `yaml:"overwriteOnUpgrade,omitempty"` - Options []ParameterOption `yaml:"options,omitempty"` - Value interface{} `yaml:"-"` - DescriptionsByNetwork map[Network]string `yaml:"-"` + ID string `yaml:"id,omitempty"` + Name string `yaml:"name,omitempty"` + Description string `yaml:"description,omitempty"` + Type ParameterType `yaml:"type,omitempty"` + Default map[Network]any `yaml:"default,omitempty"` + MaxLength int `yaml:"maxLength,omitempty"` + Regex string `yaml:"regex,omitempty"` + Advanced bool `yaml:"advanced,omitempty"` + AffectsContainers []ContainerID `yaml:"affectsContainers,omitempty"` + CanBeBlank bool `yaml:"canBeBlank,omitempty"` + OverwriteOnUpgrade bool `yaml:"overwriteOnUpgrade,omitempty"` + Options []ParameterOption `yaml:"options,omitempty"` + Value any `yaml:"-"` + DescriptionsByNetwork map[Network]string `yaml:"-"` } // A single option in a choice parameter type ParameterOption struct { - Name string `yaml:"name,omitempty"` - Description string `yaml:"description,omitempty"` - Value interface{} `yaml:"value,omitempty"` + Name string `yaml:"name,omitempty"` + Description string `yaml:"description,omitempty"` + Value any `yaml:"value,omitempty"` } // Apply a network change to a parameter @@ -141,7 +141,7 @@ func (param *Parameter) SetToDefault(network Network) error { } // Get the default value for the provided network -func (param *Parameter) GetDefault(network Network) (interface{}, error) { +func (param *Parameter) GetDefault(network Network) (any, error) { defaultSetting, exists := param.Default[network] if !exists { defaultSetting, exists = param.Default[Network_All] diff --git a/shared/utils/log/logger.go b/shared/utils/log/logger.go index ffaabac5d..8c13d4b4b 100644 --- a/shared/utils/log/logger.go +++ b/shared/utils/log/logger.go @@ -9,8 +9,8 @@ import ( // Logger with ANSI color output type ColorLogger struct { Color color.Attribute - sprintFunc func(a ...interface{}) string - sprintfFunc func(format string, a ...interface{}) string + sprintFunc func(a ...any) string + sprintfFunc func(format string, a ...any) string } // Create new color logger @@ -23,21 +23,21 @@ func NewColorLogger(colorAttr color.Attribute) ColorLogger { } // Print values -func (l *ColorLogger) Print(v ...interface{}) { +func (l *ColorLogger) Print(v ...any) { log.Print(l.sprintFunc(v...)) } // Print values with a newline -func (l *ColorLogger) Println(v ...interface{}) { +func (l *ColorLogger) Println(v ...any) { log.Println(l.sprintFunc(v...)) } // Print a formatted string -func (l *ColorLogger) Printf(format string, v ...interface{}) { +func (l *ColorLogger) Printf(format string, v ...any) { log.Print(l.sprintfFunc(format, v...)) } // Print a formatted string with a newline -func (l *ColorLogger) Printlnf(format string, v ...interface{}) { +func (l *ColorLogger) Printlnf(format string, v ...any) { log.Println(l.sprintfFunc(format, v...)) }