github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/ipc/error.go (about) 1 package ipc 2 3 import ( 4 "fmt" 5 6 "github.com/ActiveState/cli/internal/errs" 7 "github.com/ActiveState/cli/internal/ipc/internal/flisten" 8 ) 9 10 var ( 11 // expose internal errors for outside inspection 12 ErrInUse = flisten.ErrInUse 13 ErrConnLost = flisten.ErrConnLost 14 ) 15 16 type ServerDownError struct { 17 err error 18 } 19 20 func NewServerDownError(err error) *ServerDownError { 21 return &ServerDownError{ 22 err: err, 23 } 24 } 25 26 func (e *ServerDownError) Error() string { 27 return fmt.Sprintf("ipc server down: %s", e.err) 28 } 29 30 func (e *ServerDownError) Unwrap() error { 31 return e.err 32 } 33 34 func asServerDownError(err error) error { 35 if errs.IsAny(err, flisten.ErrFileNotExist, flisten.ErrConnRefused) { 36 return NewServerDownError(err) 37 } 38 return err 39 }