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

Function runTracks

apps/cli/internal/cli/tracks.go:60–106  ·  view source on GitHub ↗
(cmd *cobra.Command, args []string)

Source from the content-addressed store, hash-verified

58}
59
60func runTracks(cmd *cobra.Command, args []string) error {
61 flags := GetGlobalFlags()
62 scanDir := ResolveScanDir(args)
63
64 taskScanner := scanner.NewScanner(scanDir, flags.Verbose, flags.IgnoreDirs)
65 scanResult, err := taskScanner.Scan()
66 if err != nil {
67 return fmt.Errorf("scan failed: %w", err)
68 }
69
70 allTasks := scanResult.Tasks
71 makeFilePathsRelative(allTasks, scanDir)
72
73 warnDuplicateIDs(allTasks)
74
75 archivedTasks, err := taskScanner.ScanArchive()
76 if err != nil {
77 return fmt.Errorf("archive scan failed: %w", err)
78 }
79
80 knownScopes := loadScopesConfig()
81
82 result, err := tracks.Assign(allTasks, tracks.Options{
83 Filters: tracksFilters,
84 KnownScopes: knownScopes,
85 ArchivedTasks: archivedTasks,
86 Scope: tracksScope,
87 })
88 if err != nil {
89 return err
90 }
91
92 if tracksLimit > 0 && len(result.Tracks) > tracksLimit {
93 result.Tracks = result.Tracks[:tracksLimit]
94 }
95
96 switch tracksFormat {
97 case "json":
98 return WriteJSON(os.Stdout, result)
99 case "yaml":
100 return WriteYAML(os.Stdout, result)
101 case "table":
102 return outputTracksTable(result)
103 default:
104 return ValidateFormat(tracksFormat, []string{"table", "json", "yaml"})
105 }
106}
107
108func outputTracksTable(result *tracks.Result) error {
109 r := getRenderer()

Callers 1

captureTracksOutputFunction · 0.85

Calls 11

ScanMethod · 0.95
ScanArchiveMethod · 0.95
GetGlobalFlagsFunction · 0.85
ResolveScanDirFunction · 0.85
makeFilePathsRelativeFunction · 0.85
warnDuplicateIDsFunction · 0.85
loadScopesConfigFunction · 0.85
WriteJSONFunction · 0.85
WriteYAMLFunction · 0.85
outputTracksTableFunction · 0.85
ValidateFormatFunction · 0.85

Tested by 1

captureTracksOutputFunction · 0.68