-
-
Notifications
You must be signed in to change notification settings - Fork 45
/
package.go
35 lines (29 loc) · 909 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
32
33
34
35
package action
import (
"strings"
"github.com/carapace-sh/carapace"
)
func ActionPackages() carapace.Action {
return carapace.ActionExecCommand("pkg", "list-all")(func(output []byte) carapace.Action {
lines := strings.Split(string(output), "\n")
vals := make([]string, 0)
for _, line := range lines {
if splitted := strings.SplitN(line, "/", 2); len(splitted) == 2 {
vals = append(vals, splitted...)
}
}
return carapace.ActionValuesDescribed(vals...)
})
}
func ActionInstalledPackages() carapace.Action {
return carapace.ActionExecCommand("pkg", "list-installed")(func(output []byte) carapace.Action {
lines := strings.Split(string(output), "\n")
vals := make([]string, 0)
for _, line := range lines {
if splitted := strings.SplitN(line, "/", 2); len(splitted) == 2 {
vals = append(vals, splitted...)
}
}
return carapace.ActionValuesDescribed(vals...)
})
}