mirror of https://github.com/borgbackup/borg.git
62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
"""
|
|
This package contains all sorts of small helper / utility functionality,
|
|
that did not fit better elsewhere.
|
|
|
|
Code used to be in borg/helpers.py but was split into the modules in this
|
|
package, which are imported into here for compatibility.
|
|
"""
|
|
from contextlib import contextmanager
|
|
|
|
from .checks import * # NOQA
|
|
from .datastruct import * # NOQA
|
|
from .errors import * # NOQA
|
|
from .fs import * # NOQA
|
|
from .manifest import * # NOQA
|
|
from .misc import * # NOQA
|
|
from .parseformat import * # NOQA
|
|
from .process import * # NOQA
|
|
from .progress import * # NOQA
|
|
from .time import * # NOQA
|
|
from .yes import * # NOQA
|
|
|
|
from .msgpack import is_slow_msgpack, is_supported_msgpack, int_to_bigint, bigint_to_int, get_limited_unpacker
|
|
from . import msgpack
|
|
|
|
# generic mechanism to enable users to invoke workarounds by setting the
|
|
# BORG_WORKAROUNDS environment variable to a list of comma-separated strings.
|
|
# see the docs for a list of known workaround strings.
|
|
workarounds = tuple(os.environ.get('BORG_WORKAROUNDS', '').split(','))
|
|
|
|
|
|
@contextmanager
|
|
def ignore_invalid_archive_tam():
|
|
global workarounds
|
|
saved = workarounds
|
|
if 'ignore_invalid_archive_tam' not in workarounds:
|
|
# we really need this workaround here or borg will likely raise an exception.
|
|
workarounds += ('ignore_invalid_archive_tam',)
|
|
yield
|
|
workarounds = saved
|
|
|
|
|
|
"""
|
|
The global exit_code variable is used so that modules other than archiver can increase the program exit code if a
|
|
warning or error occurred during their operation. This is different from archiver.exit_code, which is only accessible
|
|
from the archiver object.
|
|
|
|
Note: keep this in helpers/__init__.py as the code expects to be able to assign to helpers.exit_code.
|
|
"""
|
|
exit_code = EXIT_SUCCESS
|
|
|
|
|
|
def set_ec(ec):
|
|
"""
|
|
Sets the exit code of the program, if an exit code higher or equal than this is set, this does nothing. This
|
|
makes EXIT_ERROR override EXIT_WARNING, etc..
|
|
|
|
ec: exit code to set
|
|
"""
|
|
global exit_code
|
|
exit_code = max(exit_code, ec)
|
|
return exit_code
|