refactor(gofix): modernize

This commit is contained in:
Julien Neuhart
2026-02-20 21:21:19 +01:00
parent aea7c5952a
commit 2baa59cb3a
29 changed files with 131 additions and 149 deletions

View File

@@ -10,7 +10,7 @@ import (
type Context struct {
flags ParsedFlags
descriptors []ModuleDescriptor
moduleInstances map[string]interface{}
moduleInstances map[string]any
}
// NewContext creates a [Context].
@@ -22,7 +22,7 @@ func NewContext(
return &Context{
flags: flags,
descriptors: descriptors,
moduleInstances: make(map[string]interface{}),
moduleInstances: make(map[string]any),
}
}
@@ -45,7 +45,7 @@ func (ctx *Context) ParsedFlags() ParsedFlags {
//
// If the module has not yet been initialized, this method
// initializes it. Otherwise, returns the already initialized instance.
func (ctx *Context) Module(kind interface{}) (interface{}, error) {
func (ctx *Context) Module(kind any) (any, error) {
mods, err := ctx.Modules(kind)
if err != nil {
return nil, fmt.Errorf("get module: %w", err)
@@ -70,10 +70,10 @@ func (ctx *Context) Module(kind interface{}) (interface{}, error) {
//
// If one or more modules have not yet been initialized, this method
// initializes them. Otherwise, returns the already initialized instances.
func (ctx *Context) Modules(kind interface{}) ([]interface{}, error) {
func (ctx *Context) Modules(kind any) ([]any, error) {
realKind := reflect.TypeOf(kind).Elem()
var mods []interface{}
var mods []any
for _, desc := range ctx.descriptors {
newInstance := desc.New()
@@ -101,7 +101,7 @@ func (ctx *Context) Modules(kind interface{}) ([]interface{}, error) {
// loadModule calls the Provision and/or Validate methods of the requested
// module if it satisfies the [Provisioner] and/or [Validator] interfaces.
func (ctx *Context) loadModule(id string, instance interface{}) error {
func (ctx *Context) loadModule(id string, instance any) error {
if prov, ok := instance.(Provisioner); ok {
// The instance can be provisioned.
err := prov.Provision(ctx)

View File

@@ -9,7 +9,7 @@ func TestContext_Module(t *testing.T) {
for _, tc := range []struct {
scenario string
mods []ModuleDescriptor
kind interface{}
kind any
expectError bool
}{
{
@@ -80,7 +80,7 @@ func TestContext_Modules(t *testing.T) {
for _, tc := range []struct {
scenario string
mods []ModuleDescriptor
kind interface{}
kind any
expectError bool
}{
{
@@ -151,12 +151,12 @@ func TestContext_Modules(t *testing.T) {
func TestContext_loadModule(t *testing.T) {
for _, tc := range []struct {
scenario string
instance interface{}
instance any
expectError bool
}{
{
scenario: "module with error on provision",
instance: func() interface{} {
instance: func() any {
mod := &struct {
ModuleMock
ProvisionerMock
@@ -171,7 +171,7 @@ func TestContext_loadModule(t *testing.T) {
},
{
scenario: "module with error on validation",
instance: func() interface{} {
instance: func() any {
mod := &struct {
ModuleMock
ValidatorMock
@@ -186,7 +186,7 @@ func TestContext_loadModule(t *testing.T) {
},
{
scenario: "success",
instance: func() interface{} {
instance: func() any {
mod := &struct {
ModuleMock
ValidatorMock

View File

@@ -11,12 +11,12 @@ import (
// DebugInfo gathers data for debugging.
type DebugInfo struct {
Version string `json:"version"`
Timezone string `json:"timezone"`
Architecture string `json:"architecture"`
Modules []string `json:"modules"`
ModulesAdditionalData map[string]map[string]interface{} `json:"modules_additional_data"`
Flags map[string]interface{} `json:"flags"`
Version string `json:"version"`
Timezone string `json:"timezone"`
Architecture string `json:"architecture"`
Modules []string `json:"modules"`
ModulesAdditionalData map[string]map[string]any `json:"modules_additional_data"`
Flags map[string]any `json:"flags"`
}
// BuildDebug builds the debug data from modules.
@@ -29,8 +29,8 @@ func BuildDebug(ctx *Context) {
Timezone: time.Now().Location().String(),
Architecture: runtime.GOARCH,
Modules: make([]string, len(ctx.moduleInstances)),
ModulesAdditionalData: make(map[string]map[string]interface{}),
Flags: make(map[string]interface{}),
ModulesAdditionalData: make(map[string]map[string]any),
Flags: make(map[string]any),
}
i := 0

View File

@@ -33,8 +33,8 @@ func TestBuildDebug(t *testing.T) {
mod2.DescriptorMock = func() ModuleDescriptor {
return ModuleDescriptor{ID: "bar", New: func() Module { return mod2 }}
}
mod2.DebugMock = func() map[string]interface{} {
return map[string]interface{}{
mod2.DebugMock = func() map[string]any {
return map[string]any{
"foo": "bar",
}
}
@@ -59,12 +59,12 @@ func TestBuildDebug(t *testing.T) {
"bar",
"foo",
},
ModulesAdditionalData: map[string]map[string]interface{}{
ModulesAdditionalData: map[string]map[string]any{
"bar": {
"foo": "bar",
},
},
Flags: map[string]interface{}{
Flags: map[string]any{
"foo": "bar",
},
}

View File

@@ -32,22 +32,22 @@ func NewLeveledLogger(logger *zap.Logger) *LeveledLogger {
}
// Error logs a message at the error level using the wrapped zap.Logger.
func (leveled LeveledLogger) Error(msg string, keysAndValues ...interface{}) {
func (leveled LeveledLogger) Error(msg string, keysAndValues ...any) {
leveled.logger.Error(fmt.Sprintf("%s: %+v", msg, keysAndValues))
}
// Warn logs a message at the warning level using the wrapped zap.Logger.
func (leveled LeveledLogger) Warn(msg string, keysAndValues ...interface{}) {
func (leveled LeveledLogger) Warn(msg string, keysAndValues ...any) {
leveled.logger.Warn(fmt.Sprintf("%s: %+v", msg, keysAndValues))
}
// Info logs a message at the info level using the wrapped zap.Logger.
func (leveled LeveledLogger) Info(msg string, keysAndValues ...interface{}) {
func (leveled LeveledLogger) Info(msg string, keysAndValues ...any) {
leveled.logger.Info(fmt.Sprintf("%s: %+v", msg, keysAndValues))
}
// Debug logs a message at the debug level using the wrapped zap.Logger.
func (leveled LeveledLogger) Debug(msg string, keysAndValues ...interface{}) {
func (leveled LeveledLogger) Debug(msg string, keysAndValues ...any) {
leveled.logger.Debug(fmt.Sprintf("%s: %+v", msg, keysAndValues))
}

View File

@@ -35,10 +35,10 @@ func (mod *ValidatorMock) Validate() error {
}
type DebuggableMock struct {
DebugMock func() map[string]interface{}
DebugMock func() map[string]any
}
func (mod *DebuggableMock) Debug() map[string]interface{} {
func (mod *DebuggableMock) Debug() map[string]any {
return mod.DebugMock()
}
@@ -50,8 +50,8 @@ type PdfEngineMock struct {
SplitMock func(ctx context.Context, logger *zap.Logger, mode SplitMode, inputPath, outputDirPath string) ([]string, error)
FlattenMock func(ctx context.Context, logger *zap.Logger, inputPath string) error
ConvertMock func(ctx context.Context, logger *zap.Logger, formats PdfFormats, inputPath, outputPath string) error
ReadMetadataMock func(ctx context.Context, logger *zap.Logger, inputPath string) (map[string]interface{}, error)
WriteMetadataMock func(ctx context.Context, logger *zap.Logger, metadata map[string]interface{}, inputPath string) error
ReadMetadataMock func(ctx context.Context, logger *zap.Logger, inputPath string) (map[string]any, error)
WriteMetadataMock func(ctx context.Context, logger *zap.Logger, metadata map[string]any, inputPath string) error
EncryptMock func(ctx context.Context, logger *zap.Logger, inputPath, userPassword, ownerPassword string) error
EmbedFilesMock func(ctx context.Context, logger *zap.Logger, filePaths []string, inputPath string) error
}
@@ -72,11 +72,11 @@ func (engine *PdfEngineMock) Convert(ctx context.Context, logger *zap.Logger, fo
return engine.ConvertMock(ctx, logger, formats, inputPath, outputPath)
}
func (engine *PdfEngineMock) ReadMetadata(ctx context.Context, logger *zap.Logger, inputPath string) (map[string]interface{}, error) {
func (engine *PdfEngineMock) ReadMetadata(ctx context.Context, logger *zap.Logger, inputPath string) (map[string]any, error) {
return engine.ReadMetadataMock(ctx, logger, inputPath)
}
func (engine *PdfEngineMock) WriteMetadata(ctx context.Context, logger *zap.Logger, metadata map[string]interface{}, inputPath string) error {
func (engine *PdfEngineMock) WriteMetadata(ctx context.Context, logger *zap.Logger, metadata map[string]any, inputPath string) error {
return engine.WriteMetadataMock(ctx, logger, metadata, inputPath)
}

View File

@@ -78,7 +78,7 @@ type SystemLogger interface {
// Debuggable is a module interface for modules which want to provide
// additional debug data.
type Debuggable interface {
Debug() map[string]interface{}
Debug() map[string]any
}
// MustRegisterModule registers a module.

View File

@@ -133,10 +133,10 @@ type PdfEngine interface {
Convert(ctx context.Context, logger *zap.Logger, formats PdfFormats, inputPath, outputPath string) error
// ReadMetadata extracts the metadata of a given PDF file.
ReadMetadata(ctx context.Context, logger *zap.Logger, inputPath string) (map[string]interface{}, error)
ReadMetadata(ctx context.Context, logger *zap.Logger, inputPath string) (map[string]any, error)
// WriteMetadata writes the metadata into a given PDF file.
WriteMetadata(ctx context.Context, logger *zap.Logger, metadata map[string]interface{}, inputPath string) error
WriteMetadata(ctx context.Context, logger *zap.Logger, metadata map[string]any, inputPath string) error
// Encrypt adds password protection to a PDF file.
// The userPassword is required to open the document.

View File

@@ -409,14 +409,12 @@ func TestProcessSupervisor_Run(t *testing.T) {
errorChan := make(chan error, tc.tasksToRun)
for i := 0; i < tc.tasksToRun; i++ {
wg.Add(1)
go func() {
defer wg.Done()
wg.Go(func() {
err := ps.Run(ctx, logger, task)
if err != nil {
errorChan <- err
}
}()
})
}
wg.Wait()
@@ -522,17 +520,15 @@ func TestProcessSupervisor_ReqQueueSize(t *testing.T) {
var wg sync.WaitGroup
errorChan := make(chan error, 10)
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
defer wg.Done()
for range 10 {
wg.Go(func() {
err := ps.Run(ctx, logger, func() error {
return nil
})
if err != nil {
errorChan <- err
}
}()
})
}
// We have to wait a little bit so that the request queue size may change.
@@ -652,10 +648,8 @@ func TestProcessSupervisor_ConcurrentRun(t *testing.T) {
var wg sync.WaitGroup
tasks := 6
for i := 0; i < tasks; i++ {
wg.Add(1)
go func() {
defer wg.Done()
for range tasks {
wg.Go(func() {
err := ps.Run(ctx, logger, func() error {
cur := running.Add(1)
for {
@@ -671,7 +665,7 @@ func TestProcessSupervisor_ConcurrentRun(t *testing.T) {
if err != nil {
t.Errorf("unexpected error: %v", err)
}
}()
})
}
wg.Wait()
@@ -714,10 +708,8 @@ func TestProcessSupervisor_RestartDrainsAllSlots(t *testing.T) {
var wg sync.WaitGroup
tasks := 3
for i := 0; i < tasks; i++ {
wg.Add(1)
go func() {
defer wg.Done()
for range tasks {
wg.Go(func() {
err := ps.Run(ctx, logger, func() error {
time.Sleep(50 * time.Millisecond)
return nil
@@ -725,7 +717,7 @@ func TestProcessSupervisor_RestartDrainsAllSlots(t *testing.T) {
if err != nil {
t.Errorf("unexpected error: %v", err)
}
}()
})
}
wg.Wait()