github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/runners/packages/rationalize.go (about) 1 package packages 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/internal/runbits/rationalize" 9 bpResp "github.com/ActiveState/cli/pkg/platform/api/buildplanner/response" 10 "github.com/ActiveState/cli/pkg/platform/api/buildplanner/types" 11 "github.com/ActiveState/cli/pkg/platform/authentication" 12 "github.com/ActiveState/cli/pkg/platform/runtime/buildexpression" 13 ) 14 15 func rationalizeError(auth *authentication.Auth, err *error) { 16 var commitError *bpResp.CommitError 17 var requirementNotFoundErr *buildexpression.RequirementNotFoundError 18 19 switch { 20 case err == nil: 21 return 22 23 // No activestate.yaml. 24 case errors.Is(*err, rationalize.ErrNoProject): 25 *err = errs.WrapUserFacing(*err, 26 locale.T("err_no_project"), 27 errs.SetInput(), 28 ) 29 30 // Error staging a commit during install. 31 case errors.As(*err, &commitError): 32 switch commitError.Type { 33 case types.NotFoundErrorType: 34 *err = errs.WrapUserFacing(*err, 35 locale.Tl("err_packages_not_found", "Could not make runtime changes because your project was not found."), 36 errs.SetInput(), 37 errs.SetTips(locale.T("tip_private_project_auth")), 38 ) 39 case types.ForbiddenErrorType: 40 *err = errs.WrapUserFacing(*err, 41 locale.Tl("err_packages_forbidden", "Could not make runtime changes because you do not have permission to do so."), 42 errs.SetInput(), 43 errs.SetTips(locale.T("tip_private_project_auth")), 44 ) 45 case types.HeadOnBranchMovedErrorType: 46 *err = errs.WrapUserFacing(*err, 47 locale.T("err_buildplanner_head_on_branch_moved"), 48 errs.SetInput(), 49 ) 50 case types.NoChangeSinceLastCommitErrorType: 51 *err = errs.WrapUserFacing(*err, 52 locale.Tl("err_packages_exists", "That package is already installed."), 53 errs.SetInput(), 54 ) 55 default: 56 *err = errs.WrapUserFacing(*err, 57 locale.Tl("err_packages_buildplanner_error", "Could not make runtime changes due to the following error: {{.V0}}", commitError.Message), 58 errs.SetInput(), 59 ) 60 } 61 62 // Requirement not found for uninstall. 63 case errors.As(*err, &requirementNotFoundErr): 64 *err = errs.WrapUserFacing(*err, 65 locale.Tr("err_remove_requirement_not_found", requirementNotFoundErr.Name), 66 errs.SetInput(), 67 ) 68 } 69 }