package ssh import ( "errors" "strings" "coopcloud.tech/abra/pkg/i18n" ) // Fatal is a error output wrapper which aims to make SSH failures easier to // parse through re-wording. func Fatal(hostname string, err error) error { out := err.Error() if strings.Contains(out, "Host key verification failed.") { return errors.New(i18n.G("SSH host key verification failed for %s", hostname)) } else if strings.Contains(out, "Could not resolve hostname") { return errors.New(i18n.G("could not resolve hostname for %s", hostname)) } else if strings.Contains(out, "Connection timed out") { return errors.New(i18n.G("connection timed out for %s", hostname)) } else if strings.Contains(out, "Permission denied") { return errors.New(i18n.G("ssh auth: permission denied for %s", hostname)) } else if strings.Contains(out, "Network is unreachable") { return errors.New(i18n.G("unable to connect to %s, please check your SSH config", hostname)) } else if strings.Contains(out, "Is the docker daemon running") { return errors.New(i18n.G("docker: is the daemon running / your user has docker permissions?")) } return err }