Skip to content

Commit 2b8bf14

Browse files
authored
feat: animate skills registry operations with CLIProgress spinners (#285)
Add progress feedback to the network-backed skills commands, matching the doctor/preflight/update pattern: skills search, install, and trending now show a live spinner (or clean non-TTY lines). The --json path of skills search stays pure (spinner suppressed so stdout remains valid JSON).
1 parent a910a08 commit 2b8bf14

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

‎cmd/skills_cmd.go‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,21 @@ var skillsSearchCmd = &cobra.Command{
5050
jsonOut, _ := cmd.Flags().GetBool("json")
5151

5252
rc := plugin.NewRegistryClient()
53+
prog := NewCLIProgress("Skills search", []string{"Searching skill registry"})
54+
if !jsonOut {
55+
prog.StartStep(0)
56+
}
5357
results, err := rc.Search(query, category)
5458
if err != nil {
59+
if !jsonOut {
60+
prog.Abort()
61+
}
5562
return err
5663
}
64+
if !jsonOut {
65+
prog.CompleteStep(0)
66+
prog.Done()
67+
}
5768
if jsonOut {
5869
data, _ := json.MarshalIndent(results, "", " ")
5970
fmt.Println(string(data))
@@ -82,10 +93,15 @@ var skillsInstallCmd = &cobra.Command{
8293
}
8394
scope, _ := cmd.Flags().GetString("scope")
8495
rc := plugin.NewRegistryClient()
96+
prog := NewCLIProgress("Skill install", []string{"Installing skill"})
97+
prog.StartStep(0)
8598
msg, err := rc.Install(repo, skillName, scope)
8699
if err != nil {
100+
prog.Abort()
87101
return err
88102
}
103+
prog.CompleteStep(0)
104+
prog.Done()
89105
fmt.Println(msg)
90106
return nil
91107
},
@@ -138,10 +154,15 @@ var skillsTrendingCmd = &cobra.Command{
138154
}
139155
}
140156
rc := plugin.NewRegistryClient()
157+
prog := NewCLIProgress("Trending skills", []string{"Fetching trending skills"})
158+
prog.StartStep(0)
141159
results, err := rc.Trending(limit)
142160
if err != nil {
161+
prog.Abort()
143162
return err
144163
}
164+
prog.CompleteStep(0)
165+
prog.Done()
145166
for i, e := range results {
146167
fmt.Printf("%s. %s", auditTint(fmt.Sprintf("%d", i+1), textMuted), strings.TrimLeft(plugin.FormatSkillEntry(e), " "))
147168
}

0 commit comments

Comments
 (0)