diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-01 20:23:29 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-01 20:23:29 +0300 |
| commit | 3c82415b3b9bca4b376d3044bb677438b17e491e (patch) | |
| tree | 8e1fd7f9f42b5dadeeb873a2a389c251ae774ccf /internal/cli | |
| parent | 4f1d809b83c373aa27cd453bd7b3e04ab9719878 (diff) | |
zg: derive openai voice help from shared list
Diffstat (limited to 'internal/cli')
| -rw-r--r-- | internal/cli/command.go | 8 | ||||
| -rw-r--r-- | internal/cli/command_test.go | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/internal/cli/command.go b/internal/cli/command.go index 327c869..6416250 100644 --- a/internal/cli/command.go +++ b/internal/cli/command.go @@ -5,11 +5,13 @@ import ( "fmt" "os" "path/filepath" + "strings" "github.com/spf13/cobra" "github.com/spf13/viper" "codeberg.org/snonux/totalrecall/internal" + "codeberg.org/snonux/totalrecall/internal/audio" ) // CreateRootCommand creates and configures the root cobra command @@ -71,7 +73,7 @@ func setupFlags(cmd *cobra.Command, flags *Flags) { // OpenAI flags cmd.Flags().StringVar(&flags.OpenAIModel, "openai-model", flags.OpenAIModel, "OpenAI TTS model: tts-1, tts-1-hd, gpt-4o-mini-tts") - cmd.Flags().StringVar(&flags.OpenAIVoice, "openai-voice", "", "OpenAI voice: alloy, ash, ballad, coral, echo, fable, onyx, nova, sage, shimmer, verse (default: random)") + cmd.Flags().StringVar(&flags.OpenAIVoice, "openai-voice", "", openAIVoiceUsage()) cmd.Flags().Float64Var(&flags.OpenAISpeed, "openai-speed", flags.OpenAISpeed, "OpenAI speech speed (0.25 to 4.0, may be ignored by gpt-4o-mini-tts)") cmd.Flags().StringVar(&flags.OpenAIInstruction, "openai-instruction", "", "Voice instructions for gpt-4o-mini-tts model (e.g., 'speak slowly with a Bulgarian accent')") @@ -187,3 +189,7 @@ func GetGoogleAPIKey() string { // Fall back to the legacy key for compatibility with older configs. return viper.GetString("google.api_key") } + +func openAIVoiceUsage() string { + return "OpenAI voice: " + strings.Join(audio.OpenAIVoices, ", ") + " (default: random)" +} diff --git a/internal/cli/command_test.go b/internal/cli/command_test.go index 37e2533..df193fb 100644 --- a/internal/cli/command_test.go +++ b/internal/cli/command_test.go @@ -9,6 +9,8 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" "github.com/spf13/viper" + + "codeberg.org/snonux/totalrecall/internal/audio" ) func TestCreateRootCommand(t *testing.T) { @@ -113,6 +115,15 @@ func TestSetupFlags(t *testing.T) { t.Errorf("Expected image-api help to describe CLI Nano Banana support and config fallback, got %q", imageAPIFlag.Usage) } + openAIVoiceFlag := cmd.Flags().Lookup("openai-voice") + if openAIVoiceFlag == nil { + t.Fatal("openai-voice flag not found") + } + expectedOpenAIVoiceUsage := "OpenAI voice: " + strings.Join(audio.OpenAIVoices, ", ") + " (default: random)" + if openAIVoiceFlag.Usage != expectedOpenAIVoiceUsage { + t.Errorf("Expected openai-voice help to derive from shared voice list, got %q", openAIVoiceFlag.Usage) + } + nanoBananaModelFlag := cmd.Flags().Lookup("nanobanana-model") if nanoBananaModelFlag == nil { t.Fatal("nanobanana-model flag not found") |
