|
|
|
|
@ -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()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|