mirror of https://github.com/borgbackup/borg.git
71 lines
3.8 KiB
Python
71 lines
3.8 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.
|
|
"""
|
|
import os
|
|
|
|
from ..constants import * # NOQA
|
|
from .checks import check_extension_modules, check_python
|
|
from .datastruct import StableDict, Buffer, EfficientCollectionQueue
|
|
from .errors import Error, ErrorWithTraceback, IntegrityError, DecompressionError
|
|
from .fs import ensure_dir, join_base_dir, get_socket_filename
|
|
from .fs import get_security_dir, get_keys_dir, get_base_dir, get_cache_dir, get_config_dir, get_runtime_dir
|
|
from .fs import dir_is_tagged, dir_is_cachedir, remove_dotdot_prefixes, make_path_safe, scandir_inorder
|
|
from .fs import secure_erase, safe_unlink, dash_open, os_open, os_stat, umount
|
|
from .fs import O_, flags_dir, flags_special_follow, flags_special, flags_base, flags_normal, flags_noatime
|
|
from .fs import HardLinkManager
|
|
from .misc import sysinfo, log_multi, consume
|
|
from .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
|
|
from .parseformat import bin_to_hex, safe_encode, safe_decode
|
|
from .parseformat import text_to_json, binary_to_json, remove_surrogates, join_cmd
|
|
from .parseformat import eval_escapes, decode_dict, positive_int_validator, interval
|
|
from .parseformat import PathSpec, SortBySpec, ChunkerParams, FilesCacheMode, partial_format, DatetimeWrapper
|
|
from .parseformat import format_file_size, parse_file_size, FileSize, parse_storage_quota
|
|
from .parseformat import sizeof_fmt, sizeof_fmt_iec, sizeof_fmt_decimal, Location, text_validator
|
|
from .parseformat import format_line, replace_placeholders, PlaceholderError, relative_time_marker_validator
|
|
from .parseformat import format_archive, parse_stringified_list, clean_lines
|
|
from .parseformat import location_validator, archivename_validator, comment_validator
|
|
from .parseformat import BaseFormatter, ArchiveFormatter, ItemFormatter, DiffFormatter, file_status
|
|
from .parseformat import swidth_slice, ellipsis_truncate
|
|
from .parseformat import BorgJsonEncoder, basic_json_data, json_print, json_dump, prepare_dump_dict
|
|
from .parseformat import Highlander, MakePathSafeAction
|
|
from .process import daemonize, daemonizing
|
|
from .process import signal_handler, raising_signal_handler, sig_int, ignore_sigint, SigHup, SigTerm
|
|
from .process import popen_with_error_handling, is_terminal, prepare_subprocess_env, create_filter_process
|
|
from .progress import ProgressIndicatorPercent, ProgressIndicatorMessage
|
|
from .time import parse_timestamp, timestamp, safe_timestamp, safe_s, safe_ns, MAX_S, SUPPORT_32BIT_PLATFORMS
|
|
from .time import format_time, format_timedelta, OutputTimestamp, archive_ts_now
|
|
from .yes_no import yes, TRUISH, FALSISH, DEFAULTISH
|
|
|
|
from .msgpack import is_slow_msgpack, is_supported_msgpack, 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(","))
|
|
|
|
"""
|
|
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
|