github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/kbfs/idutil/errors.go (about)

     1  // Copyright 2019 Keybase Inc. All rights reserved.
     2  // Use of this source code is governed by a BSD
     3  // license that can be found in the LICENSE file.
     4  
     5  package idutil
     6  
     7  import (
     8  	"fmt"
     9  
    10  	kbname "github.com/keybase/client/go/kbun"
    11  	"github.com/keybase/client/go/protocol/keybase1"
    12  )
    13  
    14  // NoSigChainError means that a user we were trying to identify does
    15  // not have a sigchain.
    16  type NoSigChainError struct {
    17  	User kbname.NormalizedUsername
    18  }
    19  
    20  // Error implements the error interface for NoSigChainError.
    21  func (e NoSigChainError) Error() string {
    22  	return fmt.Sprintf("%s has not yet installed Keybase and set up the "+
    23  		"Keybase filesystem. Please ask them to.", e.User)
    24  }
    25  
    26  // NoCurrentSessionError indicates that the daemon has no current
    27  // session.  This is basically a wrapper for session.ErrNoSession,
    28  // needed to give the correct return error code to the OS.
    29  type NoCurrentSessionError struct {
    30  }
    31  
    32  // Error implements the error interface for NoCurrentSessionError.
    33  func (e NoCurrentSessionError) Error() string {
    34  	return "You are not logged into Keybase.  Try `keybase login`."
    35  }
    36  
    37  // NoSuchUserError indicates that the given user couldn't be resolved.
    38  type NoSuchUserError struct {
    39  	Input string
    40  }
    41  
    42  // Error implements the error interface for NoSuchUserError
    43  func (e NoSuchUserError) Error() string {
    44  	return fmt.Sprintf("%s is not a Keybase user", e.Input)
    45  }
    46  
    47  // ToStatus implements the keybase1.ToStatusAble interface for NoSuchUserError
    48  func (e NoSuchUserError) ToStatus() keybase1.Status {
    49  	return keybase1.Status{
    50  		Name: "NotFound",
    51  		Code: int(keybase1.StatusCode_SCNotFound),
    52  		Desc: e.Error(),
    53  	}
    54  }
    55  
    56  // NoSuchTeamError indicates that the given team couldn't be resolved.
    57  type NoSuchTeamError struct {
    58  	Input string
    59  }
    60  
    61  // Error implements the error interface for NoSuchTeamError
    62  func (e NoSuchTeamError) Error() string {
    63  	return fmt.Sprintf("%s is not a Keybase team", e.Input)
    64  }
    65  
    66  // TlfNameNotCanonical indicates that a name isn't a canonical, and
    67  // that another (not necessarily canonical) name should be tried.
    68  type TlfNameNotCanonical struct {
    69  	Name, NameToTry string
    70  }
    71  
    72  // Error implements the error interface for TlfNameNotCanonical.
    73  func (e TlfNameNotCanonical) Error() string {
    74  	return fmt.Sprintf("TLF name %s isn't canonical: try %s instead",
    75  		e.Name, e.NameToTry)
    76  }
    77  
    78  // NoSuchNameError indicates that the user tried to access a
    79  // subdirectory entry that doesn't exist.
    80  type NoSuchNameError struct {
    81  	Name      string
    82  	NameToLog string
    83  }
    84  
    85  // Error implements the error interface for NoSuchNameError
    86  func (e NoSuchNameError) Error() string {
    87  	n := e.Name
    88  	if len(e.NameToLog) > 0 {
    89  		n = e.NameToLog
    90  	}
    91  	return fmt.Sprintf("%s doesn't exist", n)
    92  }
    93  
    94  // BadTLFNameError indicates a top-level folder name that has an
    95  // incorrect format.
    96  type BadTLFNameError struct {
    97  	Name      string
    98  	NameToLog string
    99  }
   100  
   101  // Error implements the error interface for BadTLFNameError.
   102  func (e BadTLFNameError) Error() string {
   103  	n := e.Name
   104  	if len(e.NameToLog) > 0 {
   105  		n = e.NameToLog
   106  	}
   107  	return fmt.Sprintf("TLF name %s is in an incorrect format", n)
   108  }