diff --git a/internal/machine/caddyconfig/controller.go b/internal/machine/caddyconfig/controller.go index 5f5a65bd..f1051741 100644 --- a/internal/machine/caddyconfig/controller.go +++ b/internal/machine/caddyconfig/controller.go @@ -242,8 +242,8 @@ func (c *Controller) writeCaddyfileIfChanged(caddyfile string) error { // caddyfileBody returns the Caddyfile content without its first line, which carries a generation timestamp that // rotates on every regeneration. func caddyfileBody(caddyfile string) string { - if i := strings.IndexByte(caddyfile, '\n'); i >= 0 { - return caddyfile[i+1:] + if _, after, ok := strings.Cut(caddyfile, "\n"); ok { + return after } return caddyfile } diff --git a/internal/machine/caddyconfig/controller_test.go b/internal/machine/caddyconfig/controller_test.go index a394a82f..86135258 100644 --- a/internal/machine/caddyconfig/controller_test.go +++ b/internal/machine/caddyconfig/controller_test.go @@ -30,8 +30,7 @@ func TestContainerFingerprint_EqualCoversAllFields(t *testing.T) { assert.True(t, base.Equal(base), "base fingerprint must be equal to itself") rt := reflect.TypeOf(base) - for i := 0; i < rt.NumField(); i++ { - field := rt.Field(i) + for field := range rt.Fields() { t.Run(field.Name, func(t *testing.T) { t.Parallel() diff --git a/internal/machine/caddyconfig/mocks_test.go b/internal/machine/caddyconfig/mocks_test.go index ca0f73f4..38401b3c 100644 --- a/internal/machine/caddyconfig/mocks_test.go +++ b/internal/machine/caddyconfig/mocks_test.go @@ -62,7 +62,7 @@ type MockCaddyfileValidator_Validate_Call struct { // Validate is a helper method to define mock.On call // - ctx context.Context // - caddyfile string -func (_e *MockCaddyfileValidator_Expecter) Validate(ctx interface{}, caddyfile interface{}) *MockCaddyfileValidator_Validate_Call { +func (_e *MockCaddyfileValidator_Expecter) Validate(ctx any, caddyfile any) *MockCaddyfileValidator_Validate_Call { return &MockCaddyfileValidator_Validate_Call{Call: _e.mock.On("Validate", ctx, caddyfile)} } diff --git a/internal/machine/docker/server.go b/internal/machine/docker/server.go index 2a4ff65e..813f15c1 100644 --- a/internal/machine/docker/server.go +++ b/internal/machine/docker/server.go @@ -683,9 +683,7 @@ func (s *Server) CreateServiceContainer( // Apply the pre-deploy hook overrides. config.Cmd = spec.PreDeploy.Command - for k, v := range spec.PreDeploy.Env { - envVars[k] = v - } + maps.Copy(envVars, spec.PreDeploy.Env) envVars["UNCLOUD_HOOK_PRE_DEPLOY"] = "true" config.Env = envVars.ToSlice() diff --git a/pkg/client/logmerger_test.go b/pkg/client/logmerger_test.go index 570c9e73..daf5835d 100644 --- a/pkg/client/logmerger_test.go +++ b/pkg/client/logmerger_test.go @@ -227,7 +227,7 @@ func TestLogMerger_ZeroTimestampForwarding(t *testing.T) { merger := NewLogMerger([]<-chan api.ServiceLogEntry{ch}, LogMergerOptions{}) output := merger.Stream() - for i := 0; i < zeroCount; i++ { + for range zeroCount { ch <- testEntry(api.LogStreamStdout, time.Time{}, "zero") } t1 := time.Now() @@ -237,7 +237,7 @@ func TestLogMerger_ZeroTimestampForwarding(t *testing.T) { results := collectEntries(t, output, 0) require.Len(t, results, zeroCount+1) - for i := 0; i < zeroCount; i++ { + for i := range zeroCount { assert.True(t, results[i].Timestamp.IsZero(), "entry %d should have zero timestamp", i) assert.Equal(t, "zero", string(results[i].Message)) }