mirror of
https://github.com/Adembc/lazyssh.git
synced 2026-07-14 12:13:34 +02:00
correct parse the identyfile and allow remove tags
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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, " ")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user