MCPcopy Create free account
hub / github.com/driangle/taskmd / runStatusSingle

Function runStatusSingle

apps/cli/internal/cli/status.go:176–217  ·  view source on GitHub ↗
(query string)

Source from the content-addressed store, hash-verified

174}
175
176func runStatusSingle(query string) error {
177 flags := GetGlobalFlags()
178 scanDir := ResolveScanDir(nil)
179
180 taskScanner := scanner.NewScanner(scanDir, flags.Verbose, flags.IgnoreDirs)
181 result, err := taskScanner.Scan()
182 if err != nil {
183 return fmt.Errorf("scan failed: %w", err)
184 }
185
186 tasks := result.Tasks
187 makeFilePathsRelative(tasks, scanDir)
188
189 // Swap stdin reader for fuzzy selection prompts
190 origReader := getStdinReader
191 getStdinReader = statusStdinReader
192 defer func() { getStdinReader = origReader }()
193
194 task, err := resolveTask(query, tasks, statusExact, statusThreshold)
195 if err != nil {
196 return err
197 }
198
199 var childrenIndex map[string][]*model.Task
200 if !statusMinimal {
201 childrenIndex = buildChildrenIndex(tasks)
202 }
203
204 tasksByID := buildTasksByIDMap(tasks)
205 out := buildStatusOutputFromTask(task, childrenIndex, tasksByID)
206
207 switch statusFormat {
208 case "text":
209 return outputStatusText(out, os.Stdout)
210 case "json":
211 return WriteJSON(os.Stdout, out)
212 case "yaml":
213 return WriteYAML(os.Stdout, out)
214 default:
215 return fmt.Errorf("unsupported format: %s (supported: text, json, yaml)", statusFormat)
216 }
217}
218
219func outputStatusline(tasks []*model.Task, w io.Writer) error {
220 task := tasks[0]

Callers 2

runStatusFunction · 0.85

Calls 11

ScanMethod · 0.95
GetGlobalFlagsFunction · 0.85
ResolveScanDirFunction · 0.85
makeFilePathsRelativeFunction · 0.85
resolveTaskFunction · 0.85
buildChildrenIndexFunction · 0.85
buildTasksByIDMapFunction · 0.85
outputStatusTextFunction · 0.85
WriteJSONFunction · 0.85
WriteYAMLFunction · 0.85

Tested by 1