cmd-zet/cmd/find.go
Oliver Davies d27eca0a07 Refactor
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-09-30 23:49:23 +01:00

49 lines
909 B
Go

package cmd
import (
"fmt"
"log"
"os"
"strings"
"github.com/spf13/cobra"
"code.oliverdavies.uk/opdavies/cmd-zet/internal/json"
"code.oliverdavies.uk/opdavies/cmd-zet/internal/zet"
)
var findCmd = &cobra.Command{
Use: "find",
Aliases: []string{"f", "s", "search"},
Short: "Print IDs and titles of zettels matching QUERY",
Long: `zet find QUERY
If -j or --json is added, the results will be in JSON format.`,
Run: func(cmd *cobra.Command, args []string) {
if len(args) < 1 {
fmt.Println("No query")
os.Exit(1)
}
zets := zet.SearchZets(args[0])
result := zet.ParseZetList(zets)
if jsonOutput {
json, err := json.AsJSON(result)
if err != nil {
log.Fatal(err)
}
fmt.Println(json)
} else {
fmt.Println(strings.Join(result, "\n"))
}
},
}
func init() {
findCmd.Flags().BoolVarP(&jsonOutput, "json", "j", false, "Output results in JSON format")
}