MCPcopy Create free account
hub / github.com/astercloud/aster / GetTaskOutput

Method GetTaskOutput

pkg/tools/builtin/task_manager.go:223–260  ·  view source on GitHub ↗

GetTaskOutput 获取任务输出

(taskID string, filter string, lines int)

Source from the content-addressed store, hash-verified

221
222// GetTaskOutput 获取任务输出
223func (tm *FileTaskManager) GetTaskOutput(taskID string, filter string, lines int) (string, string, error) {
224 task, err := tm.GetTask(taskID)
225 if err != nil {
226 return "", "", err
227 }
228
229 outputFile := filepath.Join(task.Options.OutputDir, taskID+".stdout")
230 errorFile := filepath.Join(task.Options.OutputDir, taskID+".stderr")
231
232 // 读取标准输出
233 stdout, err := os.ReadFile(outputFile)
234 if err != nil && !os.IsNotExist(err) {
235 return "", "", fmt.Errorf("failed to read stdout: %w", err)
236 }
237
238 // 读取错误输出
239 stderr, err := os.ReadFile(errorFile)
240 if err != nil && !os.IsNotExist(err) {
241 return "", "", fmt.Errorf("failed to read stderr: %w", err)
242 }
243
244 stdoutStr := string(stdout)
245 stderrStr := string(stderr)
246
247 // 应用过滤器
248 if filter != "" {
249 stdoutStr = tm.filterOutput(stdoutStr, filter)
250 stderrStr = tm.filterOutput(stderrStr, filter)
251 }
252
253 // 限制行数
254 if lines > 0 {
255 stdoutStr = tm.limitLines(stdoutStr, lines)
256 stderrStr = tm.limitLines(stderrStr, lines)
257 }
258
259 return stdoutStr, stderrStr, nil
260}
261
262// KillTask 终止任务
263func (tm *FileTaskManager) KillTask(taskID string, signal string, timeout int) error {

Callers

nothing calls this directly

Calls 5

GetTaskMethod · 0.95
filterOutputMethod · 0.95
limitLinesMethod · 0.95
JoinMethod · 0.45
ReadFileMethod · 0.45

Tested by

no test coverage detected