Compare commits
1 Commits
62ff8eab44
...
98c693b378
Author | SHA1 | Date | |
---|---|---|---|
98c693b378 |
@ -1,18 +1,64 @@
|
||||
package internal
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"fmt"
|
||||
"runtime"
|
||||
|
||||
"github.com/charmbracelet/log"
|
||||
)
|
||||
|
||||
func Error(msg string) HelpError {
|
||||
caller := ""
|
||||
if Debug {
|
||||
_, file, line, _ := runtime.Caller(1)
|
||||
caller = log.ShortCallerFormatter(file, line, "")
|
||||
|
||||
}
|
||||
return HelpError{err: msg, caller: caller}
|
||||
}
|
||||
|
||||
func Errorf(format string, a ...any) HelpError {
|
||||
caller := ""
|
||||
if Debug {
|
||||
_, file, line, _ := runtime.Caller(1)
|
||||
caller = log.ShortCallerFormatter(file, line, "")
|
||||
|
||||
}
|
||||
return HelpError{err: fmt.Sprintf(format, a...), caller: caller}
|
||||
}
|
||||
|
||||
type HelpError struct {
|
||||
err string
|
||||
help string
|
||||
err string
|
||||
caller string
|
||||
help string
|
||||
}
|
||||
|
||||
func (e HelpError) Help(help string) HelpError {
|
||||
e.help = help
|
||||
return e
|
||||
}
|
||||
|
||||
func (e HelpError) Helpf(format string, a ...any) HelpError {
|
||||
e.help = fmt.Sprintf(format, a...)
|
||||
return e
|
||||
}
|
||||
|
||||
func (e HelpError) Error() string {
|
||||
return e.format()
|
||||
}
|
||||
|
||||
func (e HelpError) format() string {
|
||||
msg := ""
|
||||
if e.caller != "" {
|
||||
msg += fmt.Sprintf("<%s> ", e.caller)
|
||||
}
|
||||
|
||||
msg += e.err
|
||||
if e.help == "" {
|
||||
return msg
|
||||
}
|
||||
|
||||
return fmt.Sprintf(`%s
|
||||
|
||||
Help: %s `, e.err, e.help)
|
||||
}
|
||||
|
||||
func Error(msg, help string) HelpError {
|
||||
return HelpError{err: msg, help: help}
|
||||
Help: %s `, msg, e.help)
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ developer machine. The domain is then set to "default".`,
|
||||
if _, err := client.New(name, timeout); err != nil {
|
||||
cleanUp(name)
|
||||
log.Debugf("ssh %s error: %s", name, sshPkg.Fatal(name, err))
|
||||
return internal.Error(fmt.Sprintf("can't ssh to %s", name), fmt.Sprintf("make sure \"ssh %s\" works", name))
|
||||
return internal.Errorf("can't ssh to %s", name).Helpf("make sure \"ssh %s\" works", name)
|
||||
}
|
||||
|
||||
if created {
|
||||
|
Loading…
x
Reference in New Issue
Block a user