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:
parent
329d6d34e0
commit
3c7a1dc3c1
5 changed files with 118 additions and 20 deletions
43
cmd/edit.go
43
cmd/edit.go
|
@ -2,8 +2,10 @@ package cmd
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
|
@ -24,17 +26,46 @@ zet edit|e latest
|
|||
}
|
||||
|
||||
var id int
|
||||
var query string
|
||||
|
||||
if args[0] == "latest" {
|
||||
id = lib.GetLatestZet()
|
||||
} else {
|
||||
i, err := strconv.Atoi(args[0])
|
||||
|
||||
if err != nil {
|
||||
os.Exit(1)
|
||||
}
|
||||
lib.EditZet(id)
|
||||
|
||||
id = i
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
if id, err := strconv.Atoi(args[0]); err == nil {
|
||||
lib.EditZet(id)
|
||||
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
query = args[0]
|
||||
|
||||
ids := lib.SearchZets(query)
|
||||
|
||||
if len(ids) == 1 {
|
||||
lib.EditZet(ids[0])
|
||||
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
zets := lib.ParseZetList(ids)
|
||||
|
||||
selected, err := lib.SelectWithFzf(zets)
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("No zet selected.")
|
||||
}
|
||||
|
||||
parts := strings.SplitN(selected, " ", 2)
|
||||
|
||||
id, err = strconv.Atoi(parts[0])
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
lib.EditZet(id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue