// Package connect lance la connexion en remplaçant le processus par ssh.
package connect
import (
"fmt"
"os"
"os/exec"
"syscall"
"git.neuromancer.ovh/bastien-mrq/sssh/internal/host"
)
// Exec remplace le processus courant par ssh (TTY natif, agent, etc.).
// Ne revient jamais en cas de succès.
func Exec(h host.Host, extra []string) error {
path, err := exec.LookPath("ssh")
if err != nil {
return fmt.Errorf("binaire ssh introuvable : %w", err)
}
argv := append([]string{"ssh"}, h.SSHArgs(extra...)...)
fmt.Fprintf(os.Stderr, "→ %s\n", h.Describe())
return syscall.Exec(path, argv, os.Environ())
}