You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.6 KiB
Go

package main
import (
"github.com/charmbracelet/huh"
)
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)
}
}