correct parse the identyfile and allow remove tags

This commit is contained in:
Adem Baccara
2025-09-10 21:59:46 +01:00
parent b71ef74aaa
commit bb5b7554e6
8 changed files with 69 additions and 177 deletions
+5 -5
View File
@@ -332,13 +332,13 @@ func (t *tui) showEditTagsForm(server domain.Server) {
form.AddButton("Save", func() {
text := strings.TrimSpace(form.GetFormItem(0).(*tview.InputField).GetText())
var tags []string
if text != "" {
for _, part := range strings.Split(text, ",") {
if s := strings.TrimSpace(part); s != "" {
tags = append(tags, s)
}
for _, part := range strings.Split(text, ",") {
if s := strings.TrimSpace(part); s != "" {
tags = append(tags, s)
}
}
newServer := server
newServer.Tags = tags
_ = t.serverService.UpdateServer(server, newServer)
+2 -4
View File
@@ -61,10 +61,8 @@ func (sd *ServerDetails) UpdateServer(server domain.Server) {
if server.LastSeen.IsZero() {
lastSeen = "Never"
}
serverKey := server.Key
if serverKey == "" {
serverKey = "(default: ~/.ssh/id_{rsa,ed25519,ecdsa})"
}
serverKey := strings.Join(server.IdentityFiles, ", ")
pinnedStr := "true"
if server.PinnedAt.IsZero() {
pinnedStr = "false"
+17 -8
View File
@@ -82,7 +82,7 @@ func (sf *ServerForm) addFormFields() {
Host: sf.original.Host,
User: sf.original.User,
Port: fmt.Sprint(sf.original.Port),
Key: sf.original.Key,
Key: strings.Join(sf.original.IdentityFiles, ", "),
Tags: strings.Join(sf.original.Tags, ", "),
}
} else {
@@ -97,7 +97,7 @@ func (sf *ServerForm) addFormFields() {
sf.Form.AddInputField("Host/IP:", defaultValues.Host, 20, nil, nil)
sf.Form.AddInputField("User:", defaultValues.User, 20, nil, nil)
sf.Form.AddInputField("Port:", defaultValues.Port, 20, nil, nil)
sf.Form.AddInputField("Key:", defaultValues.Key, 40, nil, nil)
sf.Form.AddInputField("Key (Comma):", defaultValues.Key, 40, nil, nil)
sf.Form.AddInputField("Tags (comma):", defaultValues.Tags, 30, nil, nil)
}
@@ -163,13 +163,22 @@ func (sf *ServerForm) dataToServer(data ServerFormData) domain.Server {
}
}
keys := []string{}
if data.Key != "" {
parts := strings.Split(data.Key, ",")
for _, p := range parts {
if k := strings.TrimSpace(p); k != "" {
keys = append(keys, k)
}
}
}
return domain.Server{
Alias: data.Alias,
Host: data.Host,
User: data.User,
Port: port,
Key: data.Key,
Tags: tags,
Alias: data.Alias,
Host: data.Host,
User: data.User,
Port: port,
IdentityFiles: keys,
Tags: tags,
}
}
+2 -2
View File
@@ -124,8 +124,8 @@ func BuildSSHCommand(s domain.Server) string {
if s.Port != 0 && s.Port != 22 {
parts = append(parts, "-p", fmt.Sprintf("%d", s.Port))
}
if s.Key != "" {
parts = append(parts, "-i", quoteIfNeeded(s.Key))
if len(s.IdentityFiles) > 0 {
parts = append(parts, "-i", quoteIfNeeded(s.IdentityFiles[0]))
}
return strings.Join(parts, " ")
}