From 599bdb74efcc97e86ce6023c1ae8265b1c2ff33b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 29 Jan 2026 21:39:06 +0200 Subject: refactor: improve Go best practices compliance - Add explicit interface satisfaction checks (var _ Interface = (*Type)(nil)) for compile-time verification: - TurboWriter implementations (DirectTurboWriter, TurboChannelWriter) - Processor implementations (GrepLineProcessor, ChannellessLineProcessor) - Parser implementations (genericParser, csvParser, genericKVParser, custom parsers, mimecastParser) - Logger implementations (file, stdout) - Handler implementations (ServerHandler, ClientHandler) - Connector implementations (Serverless, ServerConnection) - SSH callback implementations (KnownHostsCallback) - Improve error handling with context wrapping (%w): - SSH operations: GeneratePrivateRSAKey, Agent - Query parsing: Query.parse - SSH client connections: dial, session, handle methods - Fix receiver consistency: - Convert Query.String() from value to pointer receiver - Convert Outfile.String() from value to pointer receiver - Convert all KnownHostsCallback methods to pointer receivers - Convert mapCommand.Start() to pointer receiver - Reorganize file structure for better clarity: - internal/io/dlog/dlog.go: Move type definition before public functions - internal/mapr/token.go: Reorganize helper functions after public ones - Add documentation comments: - Query.String() method - Outfile.String() method - Regex.String() method - Improve config variable documentation All unit tests and integration tests pass. Amp-Thread-ID: https://ampcode.com/threads/T-019c0b08-0eeb-705d-a1f7-31bb764b659a Co-authored-by: Amp --- internal/ssh/ssh.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'internal/ssh/ssh.go') diff --git a/internal/ssh/ssh.go b/internal/ssh/ssh.go index 9c2dcb8..32e01b3 100644 --- a/internal/ssh/ssh.go +++ b/internal/ssh/ssh.go @@ -21,11 +21,10 @@ import ( func GeneratePrivateRSAKey(size int) (*rsa.PrivateKey, error) { privateKey, err := rsa.GenerateKey(rand.Reader, size) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to generate RSA key: %w", err) } - err = privateKey.Validate() - if err != nil { - return nil, err + if err = privateKey.Validate(); err != nil { + return nil, fmt.Errorf("failed to validate generated RSA key: %w", err) } return privateKey, nil } @@ -46,12 +45,12 @@ func EncodePrivateKeyToPEM(privateKey *rsa.PrivateKey) []byte { func Agent() (gossh.AuthMethod, error) { sshAgent, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")) if err != nil { - return nil, err + return nil, fmt.Errorf("failed to connect to SSH agent: %w", err) } agentClient := agent.NewClient(sshAgent) keys, err := agentClient.List() if err != nil { - return nil, err + return nil, fmt.Errorf("failed to list SSH agent keys: %w", err) } for i, key := range keys { dlog.Common.Debug("Public key", i, key) -- cgit v1.2.3