github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/runbits/checkout/rationalize.go (about) 1 package checkout 2 3 import ( 4 "errors" 5 6 "github.com/ActiveState/cli/internal/errs" 7 "github.com/ActiveState/cli/internal/locale" 8 "github.com/ActiveState/cli/pkg/platform/model" 9 ) 10 11 func (c *Checkout) rationalizeError(err *error) { 12 var errAlreadyCheckedOut *ErrAlreadyCheckedOut 13 var errProjectNotFound *model.ErrProjectNotFound 14 var errNoPermssion *ErrNoPermission 15 var errCommit *errCommitDoesNotBelong 16 17 switch { 18 case err == nil: 19 return 20 case errors.As(*err, &errAlreadyCheckedOut): 21 *err = errs.WrapUserFacing( 22 *err, locale.Tr("err_already_checked_out", errAlreadyCheckedOut.Path), 23 errs.SetInput(), 24 ) 25 case errors.As(*err, &errProjectNotFound): 26 *err = errs.WrapUserFacing(*err, 27 locale.Tr("err_api_project_not_found", errProjectNotFound.Organization, errProjectNotFound.Project), 28 errs.SetIf(!c.auth.Authenticated(), errs.SetTips(locale.T("tip_private_project_auth"))), 29 errs.SetInput(), 30 ) 31 case errors.As(*err, &errNoPermssion): 32 *err = errs.WrapUserFacing(*err, 33 locale.Tl("err_checkout_os_permissions", "You do not have permission to check out to '{{.V0}}'. Please try elsewhere.", errNoPermssion.Path), 34 errs.SetInput(), 35 ) 36 case errors.As(*err, &errCommit): 37 *err = errs.WrapUserFacing(*err, 38 locale.Tl("err_commit_does_not_belong", "The commit '{{.V0}}' does not belong to this project", errCommit.CommitID.String()), 39 errs.SetInput(), 40 ) 41 } 42 }