implement Executor pattern

This commit is contained in:
2026-02-09 13:10:00 -05:00
parent 3c11a79252
commit f615b03794
6 changed files with 93 additions and 48 deletions

21
internal/executor/ssh.go Normal file
View File

@@ -0,0 +1,21 @@
package executor
import (
"context"
"os/exec"
)
type SSHExecutor struct {
SSHTarget string
}
func (s SSHExecutor) CombinedOutput(ctx context.Context, name string, arg ...string) ([]byte, error) {
return s.CommandContext(ctx, name, arg...).CombinedOutput()
}
func (s SSHExecutor) CommandContext(ctx context.Context, name string, arg ...string) *exec.Cmd {
newArg := append([]string{s.SSHTarget, name}, arg...)
cmd := exec.CommandContext(ctx, "ssh", newArg...)
return cmd
}