package infra

import "fmt"

// SSHConfigRemoveEntry elimina el entry con el alias dado. Retorna error si
// el alias no existe. No muta el slice original.
func SSHConfigRemoveEntry(entries []SSHConfigEntry, alias string) ([]SSHConfigEntry, error) {
	idx := -1
	for i, e := range entries {
		if e.Alias == alias {
			idx = i
			break
		}
	}
	if idx < 0 {
		return nil, fmt.Errorf("alias %q not found", alias)
	}
	result := make([]SSHConfigEntry, 0, len(entries)-1)
	result = append(result, entries[:idx]...)
	result = append(result, entries[idx+1:]...)
	return result, nil
}
