// Command genius searches metadata or retrieves lyrics from an explicitly selected Genius URL. package main import ( "context" "encoding/json" "flag" "fmt" "os" "pipu/api/internal/genius" ) func main() { query := flag.String("search", "", "search candidates by artist and title (requires GENIUS_ACCESS_TOKEN)") page := flag.String("url", "", "retrieve lyrics from a selected https://genius.com/...-lyrics URL") flag.Parse() if (*query == "") == (*page == "") || flag.NArg() != 0 { fmt.Fprintln(os.Stderr, "provide exactly one of -search or -url") os.Exit(2) } client := genius.New(os.Getenv("GENIUS_ACCESS_TOKEN")) var result any var err error if *query != "" { result, err = client.Search(context.Background(), *query) } else { result, err = client.FetchLyrics(context.Background(), *page) } if err == nil { encoder := json.NewEncoder(os.Stdout) encoder.SetIndent("", " ") err = encoder.Encode(result) } if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } }