more detailled warnings for source file OSErrors

This commit is contained in:
Thomas Waldmann 2023-11-15 22:39:42 +01:00
parent e8fa4986cc
commit 982aeb56a7
No known key found for this signature in database
GPG Key ID: 243ACFA951F78E01
1 changed files with 22 additions and 0 deletions

View File

@ -1,3 +1,4 @@
import errno
import os
from ..constants import * # NOQA
@ -119,6 +120,27 @@ class BackupOSWarning(BorgWarning):
exit_mcode = 104
@property
def exit_code(self):
if not modern_ec:
return EXIT_WARNING
exc = self.args[1]
assert isinstance(exc, BackupOSError)
if exc.errno in (errno.EPERM, errno.EACCES):
return PermissionWarning.exit_mcode
elif exc.errno in (errno.EIO,):
return IOWarning.exit_mcode
else:
return self.exit_mcode
class PermissionWarning(BorgWarning):
exit_mcode = 105
class IOWarning(BorgWarning):
exit_mcode = 106
class BackupError(Exception):
"""