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  }