package infra

import (
	"fmt"
	"os"
	"syscall"
)

// SSHTunnelClose cierra un tunel SSH enviando SIGTERM al proceso por PID.
func SSHTunnelClose(pid int) error {
	proc, err := os.FindProcess(pid)
	if err != nil {
		return fmt.Errorf("ssh tunnel close: process %d not found: %w", pid, err)
	}

	err = proc.Signal(syscall.SIGTERM)
	if err != nil {
		return fmt.Errorf("ssh tunnel close: cannot signal PID %d: %w", pid, err)
	}
	return nil
}
