diff --git a/.gitignore b/.gitignore index e99e43d..711857f 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,5 @@ go.work.sum # .vscode/ brainstorm .idea -bin \ No newline at end of file +bin +.DS_Store \ No newline at end of file diff --git a/internal/adapters/data/file/metadata_manager.go b/internal/adapters/data/file/metadata_manager.go index 0046247..9ff986a 100644 --- a/internal/adapters/data/file/metadata_manager.go +++ b/internal/adapters/data/file/metadata_manager.go @@ -81,16 +81,26 @@ func (m *metadataManager) updateServer(server domain.Server) error { metadata = make(map[string]ServerMetadata) } - serverMeta := ServerMetadata{ - Tags: server.Tags, - LastSeen: server.LastSeen.Format(time.RFC3339), + existing := metadata[server.Alias] + merged := existing + + if server.Tags != nil { + merged.Tags = server.Tags + } + + if !server.LastSeen.IsZero() { + merged.LastSeen = server.LastSeen.Format(time.RFC3339) } if !server.PinnedAt.IsZero() { - serverMeta.PinnedAt = server.PinnedAt.Format(time.RFC3339) + merged.PinnedAt = server.PinnedAt.Format(time.RFC3339) } - metadata[server.Alias] = serverMeta + if server.SSHCount > 0 { + merged.SSHCount = server.SSHCount + } + + metadata[server.Alias] = merged return m.saveAll(metadata) } diff --git a/internal/adapters/ui/server_form.go b/internal/adapters/ui/server_form.go index 2b183bf..1d097bb 100644 --- a/internal/adapters/ui/server_form.go +++ b/internal/adapters/ui/server_form.go @@ -18,7 +18,6 @@ import ( "fmt" "strconv" "strings" - "time" "github.com/Adembc/lazyssh/internal/core/domain" "github.com/gdamore/tcell/v2" @@ -123,9 +122,6 @@ func (sf *ServerForm) handleSave() { } server := sf.dataToServer(data) - if sf.original == nil { - server.LastSeen = time.Now() - } if sf.onSave != nil { sf.onSave(server, sf.original) }