mirror of
https://github.com/cexll/myclaude.git
synced 2026-02-06 02:34:09 +08:00
- Move all source files to internal/{app,backend,config,executor,logger,parser,utils}
- Integrate third-party libraries: zerolog, goccy/go-json, gopsutil, cobra/viper
- Add comprehensive unit tests for utils package (94.3% coverage)
- Add performance benchmarks for string operations
- Fix error display: cleanup warnings no longer pollute Recent Errors
- Add GitHub Actions CI workflow
- Add Makefile for build automation
- Add README documentation
Generated with SWE-Agent.ai
Co-Authored-By: SWE-Agent.ai <noreply@swe-agent.ai>
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package executor
|
|
|
|
import (
|
|
"context"
|
|
"os/exec"
|
|
|
|
backend "codeagent-wrapper/internal/backend"
|
|
)
|
|
|
|
type CommandRunner = commandRunner
|
|
type ProcessHandle = processHandle
|
|
|
|
func SetForceKillDelay(seconds int32) (restore func()) {
|
|
prev := forceKillDelay.Load()
|
|
forceKillDelay.Store(seconds)
|
|
return func() { forceKillDelay.Store(prev) }
|
|
}
|
|
|
|
func SetSelectBackendFn(fn func(string) (Backend, error)) (restore func()) {
|
|
prev := selectBackendFn
|
|
if fn != nil {
|
|
selectBackendFn = fn
|
|
} else {
|
|
selectBackendFn = backend.Select
|
|
}
|
|
return func() { selectBackendFn = prev }
|
|
}
|
|
|
|
func SetCommandContextFn(fn func(context.Context, string, ...string) *exec.Cmd) (restore func()) {
|
|
prev := commandContext
|
|
if fn != nil {
|
|
commandContext = fn
|
|
} else {
|
|
commandContext = exec.CommandContext
|
|
}
|
|
return func() { commandContext = prev }
|
|
}
|
|
|
|
func SetNewCommandRunner(fn func(context.Context, string, ...string) CommandRunner) (restore func()) {
|
|
prev := newCommandRunner
|
|
if fn != nil {
|
|
newCommandRunner = fn
|
|
} else {
|
|
newCommandRunner = func(ctx context.Context, name string, args ...string) commandRunner {
|
|
return &realCmd{cmd: commandContext(ctx, name, args...)}
|
|
}
|
|
}
|
|
return func() { newCommandRunner = prev }
|
|
}
|
|
|
|
func WithTaskLogger(ctx context.Context, logger *Logger) context.Context {
|
|
return withTaskLogger(ctx, logger)
|
|
}
|
|
|
|
func TaskLoggerFromContext(ctx context.Context) *Logger {
|
|
return taskLoggerFromContext(ctx)
|
|
}
|