If the argument isn't an ID, use fzf to find an ID

Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
This commit is contained in:
Oliver Davies 2025-09-30 22:43:12 +01:00
parent 329d6d34e0
commit 3c7a1dc3c1
5 changed files with 118 additions and 20 deletions

34
internal/lib/fzf.go Normal file
View file

@ -0,0 +1,34 @@
package lib
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
}