cmd-zet/internal/fzf/fzf.go

35 lines
469 B
Go
Raw Normal View History

package fzf
import (
"bytes"
"os"
"os/exec"
"strings"
)
func SelectWithFzf(items []string) (string, error) {
cmd := exec.Command("fzf", "--ansi")
var input bytes.Buffer
for _, item := range items {
input.WriteString(item + "\n")
}
cmd.Stdin = &input
var output bytes.Buffer
cmd.Stdout = &output
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
return "", err
}
selected := strings.TrimSpace(output.String())
return selected, nil
}