-
-
Notifications
You must be signed in to change notification settings - Fork 45
/
package.go
31 lines (27 loc) · 1006 Bytes
/
package.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package action
import (
"strings"
"github.com/carapace-sh/carapace"
"github.com/carapace-sh/carapace-bin/pkg/actions/tools/pub"
)
func ActionActivePackages() carapace.Action {
return carapace.ActionExecCommand("dart", "pub", "global", "list")(func(output []byte) carapace.Action {
lines := strings.Split(string(output), "\n")
vals := make([]string, 0)
for _, line := range lines[:len(lines)-1] {
vals = append(vals, strings.SplitN(line, " ", 2)...)
}
return carapace.ActionValuesDescribed(vals...)
})
}
func ActionActivePackageExecutables(pkg string) carapace.Action {
return carapace.ActionExecCommand("dart", "pub", "global", "list")(func(output []byte) carapace.Action {
lines := strings.Split(string(output), "\n")
for _, line := range lines[:len(lines)-1] {
if splitted := strings.SplitN(line, " ", 2); splitted[0] == pkg {
return pub.ActionHostedExecutables(pub.HostedExecutablesOpts{Name: pkg, Version: splitted[1]})
}
}
return carapace.ActionValues()
})
}