From b5260b5c37003790a91c3862136f8903da6e64e1 Mon Sep 17 00:00:00 2001 From: Joshua Herring Date: Thu, 14 May 2026 03:21:36 -0400 Subject: [PATCH] clean up form setting code --- main.go | 78 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 30 deletions(-) diff --git a/main.go b/main.go index 6f1c50c..b36c94d 100644 --- a/main.go +++ b/main.go @@ -124,6 +124,53 @@ func execCommand(choice int, m model) tea.Cmd { } } +func run_command_form(m *model) *huh.Form { + return huh.NewForm( + huh.NewGroup( + huh.NewInput().Title("Remote Command").Key("remote_command").Value(&m.RemoteCommand), + huh.NewInput().Title("Private Key File").Key("private_key_file").Value(&m.PrivateKeyFile), + huh.NewInput().Title("Username").Key("username").Value(&m.Username), + huh.NewInput().Title("Host").Key("host").Value(&m.Host), + ), + ) +} + +func transfer_file_form(m *model) *huh.Form { + return huh.NewForm( + huh.NewGroup( + huh.NewInput().Title("Local Filepath").Key("local_filepath").Value(&m.LocalFilepath), + huh.NewInput().Title("Destination Filepath").Key("destination_filepath").Value(&m.DestinationFilepath), + huh.NewInput().Title("Private Key File").Key("private_key_file").Value(&m.PrivateKeyFile), + huh.NewInput().Title("Username").Key("username").Value(&m.Username), + huh.NewInput().Title("Host").Key("host").Value(&m.Host), + ), + ) +} + +func acme_record_form(m *model) *huh.Form { + return huh.NewForm( + huh.NewGroup( + huh.NewInput().Title("Cloudflare API Token").Key("cloudflare_api_token").Value(&m.CloudflareAPIToken), + huh.NewInput().Title("Zone ID").Key("zone_id").Value(&m.ZoneID), + huh.NewInput().Title("Record Name").Key("record_name").Value(&m.RecordName), + huh.NewInput().Title("Record Value").Key("record_value").Value(&m.RecordValue), + ), + ) +} + +func (m *model) SetForm() { + switch m.choice { + case 0: + m.form = run_command_form(m) + case 1: + m.form = transfer_file_form(m) + case 2: + m.form = acme_record_form(m) + default: + m.form = acme_record_form(m) + } +} + func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch m.state { case stateList: @@ -134,36 +181,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { if msg.String() == "enter" { m.choice = m.list.Index() m.state = stateForm - switch m.choice { - case 0: - m.form = huh.NewForm( - huh.NewGroup( - huh.NewInput().Title("Remote Command").Key("remote_command").Value(&m.RemoteCommand), - huh.NewInput().Title("Private Key File").Key("private_key_file").Value(&m.PrivateKeyFile), - huh.NewInput().Title("Username").Key("username").Value(&m.Username), - huh.NewInput().Title("Host").Key("host").Value(&m.Host), - ), - ) - case 1: - m.form = huh.NewForm( - huh.NewGroup( - huh.NewInput().Title("Local Filepath").Key("local_filepath").Value(&m.LocalFilepath), - huh.NewInput().Title("Destination Filepath").Key("destination_filepath").Value(&m.DestinationFilepath), - huh.NewInput().Title("Private Key File").Key("private_key_file").Value(&m.PrivateKeyFile), - huh.NewInput().Title("Username").Key("username").Value(&m.Username), - huh.NewInput().Title("Host").Key("host").Value(&m.Host), - ), - ) - default: - m.form = huh.NewForm( - huh.NewGroup( - huh.NewInput().Title("Cloudflare API Token").Key("cloudflare_api_token").Value(&m.CloudflareAPIToken), - huh.NewInput().Title("Zone ID").Key("zone_id").Value(&m.ZoneID), - huh.NewInput().Title("Record Name").Key("record_name").Value(&m.RecordName), - huh.NewInput().Title("Record Value").Key("record_value").Value(&m.RecordValue), - ), - ) - } + m.SetForm() return m, m.form.Init() } }