@@ -53,6 +53,8 @@ const (
5353 tempTablesDir = "temptf"
5454
5555 TmpDirName = "tmp"
56+
57+ InvalidRemoteNameCharacters = " \t \n \r ./\\ !@#$%^&*(){}[],.<>'\" ?=+|"
5658)
5759
5860var zeroHashStr = (hash.Hash {}).String ()
@@ -64,15 +66,15 @@ var ErrRemoteAlreadyExists = errors.New("remote already exists")
6466var ErrInvalidRemoteURL = errors .New ("remote URL invalid" )
6567var ErrRemoteNotFound = errors .New ("remote not found" )
6668var ErrInvalidRemoteName = errors .New ("remote name invalid" )
67- var ErrBackupAlreadyExists = errors . New ("backup already exists" )
68- var ErrInvalidBackupURL = errors . New ("backup URL invalid" )
69- var ErrBackupNotFound = errors . New ("backup not found" )
70- var ErrInvalidBackupName = errors . New ("backup name invalid" )
71- var ErrFailedToDeleteBackup = errors . New ( " failed to delete backup " )
69+ var ErrBackupAlreadyExists = goerrors . NewKind ("backup '%s' already exists" )
70+ var ErrBackupInvalidUrl = goerrors . NewKind ("backup URL '%s' is invalid" )
71+ var ErrBackupNotFound = goerrors . NewKind ("backup '%s' not found" )
72+ var ErrBackupInvalidName = goerrors . NewKind ("backup name '%s' is invalid" )
73+ var ErrBackupFailedDelete = goerrors . NewKind ( "backup '%s' failed to delete" )
7274var ErrFailedToReadFromDb = errors .New ("failed to read from db" )
7375var ErrFailedToDeleteRemote = errors .New ("failed to delete remote" )
7476var ErrFailedToWriteRepoState = errors .New ("failed to write repo state" )
75- var ErrRemoteAddressConflict = errors . New ("address conflict with a remote" )
77+ var ErrRemoteAddressConflict = goerrors . NewKind ("address conflict with a remote: '%s' -> %s " )
7678var ErrDoltRepositoryNotFound = errors .New ("can no longer find .dolt dir on disk" )
7779var ErrFailedToAccessDB = goerrors .NewKind ("failed to access '%s' database: can no longer find .dolt dir on disk" )
7880var ErrDatabaseIsLocked = errors .New ("the database is locked by another dolt process" )
@@ -1023,7 +1025,7 @@ func (dEnv *DoltEnv) AddRemote(r Remote) error {
10231025 return ErrRemoteAlreadyExists
10241026 }
10251027
1026- if strings .IndexAny (r .Name , " \t \n \r ./ \\ !@#$%^&*(){}[],.<>' \" ?=+|" ) != - 1 {
1028+ if strings .IndexAny (r .Name , InvalidRemoteNameCharacters ) != - 1 {
10271029 return ErrInvalidRemoteName
10281030 }
10291031
@@ -1034,7 +1036,7 @@ func (dEnv *DoltEnv) AddRemote(r Remote) error {
10341036
10351037 // can have multiple remotes with the same address, but no conflicting backups
10361038 if rem , found := CheckRemoteAddressConflict (absRemoteUrl , nil , dEnv .RepoState .Backups ); found {
1037- return fmt . Errorf ( "%w: '%s' -> %s" , ErrRemoteAddressConflict , rem .Name , rem .Url )
1039+ return ErrRemoteAddressConflict . New ( rem .Name , rem .Url )
10381040 }
10391041
10401042 r .Url = absRemoteUrl
@@ -1052,21 +1054,21 @@ func (dEnv *DoltEnv) GetBackups() (*concurrentmap.Map[string, Remote], error) {
10521054
10531055func (dEnv * DoltEnv ) AddBackup (r Remote ) error {
10541056 if _ , ok := dEnv .RepoState .Backups .Get (r .Name ); ok {
1055- return ErrBackupAlreadyExists
1057+ return ErrBackupAlreadyExists . New ( r . Name )
10561058 }
10571059
1058- if strings .IndexAny (r .Name , " \t \n \r ./ \\ !@#$%^&*(){}[],.<>' \" ?=+|" ) != - 1 {
1059- return ErrInvalidBackupName
1060+ if strings .IndexAny (r .Name , InvalidRemoteNameCharacters ) != - 1 {
1061+ return ErrBackupInvalidName . New ( r . Name )
10601062 }
10611063
10621064 _ , absRemoteUrl , err := GetAbsRemoteUrl (dEnv .FS , dEnv .Config , r .Url )
10631065 if err != nil {
1064- return fmt . Errorf ( "%w; %s" , ErrInvalidBackupURL , err .Error ())
1066+ return ErrBackupInvalidUrl . New ( r . Url , err .Error ())
10651067 }
10661068
10671069 // no conflicting remote or backup addresses
1068- if rem , found := CheckRemoteAddressConflict (absRemoteUrl , dEnv .RepoState .Remotes , dEnv .RepoState .Backups ); found {
1069- return fmt . Errorf ( "%w: '%s' -> %s" , ErrRemoteAddressConflict , rem .Name , rem .Url )
1070+ if conflict , found := CheckRemoteAddressConflict (absRemoteUrl , dEnv .RepoState .Remotes , dEnv .RepoState .Backups ); found {
1071+ return ErrRemoteAddressConflict . New ( conflict .Name , conflict .Url )
10701072 }
10711073
10721074 r .Url = absRemoteUrl
@@ -1110,7 +1112,7 @@ func (dEnv *DoltEnv) RemoveRemote(ctx context.Context, name string) error {
11101112func (dEnv * DoltEnv ) RemoveBackup (ctx context.Context , name string ) error {
11111113 backup , ok := dEnv .RepoState .Backups .Get (name )
11121114 if ! ok {
1113- return ErrBackupNotFound
1115+ return ErrBackupNotFound . New ( name )
11141116 }
11151117
11161118 dEnv .RepoState .RemoveBackup (backup )
0 commit comments