mirror of https://github.com/borgbackup/borg.git
move tar related code to borg.archiver.tar
This commit is contained in:
parent
900398f927
commit
ded384929d
|
@ -13,7 +13,6 @@ from ..constants import * # NOQA
|
|||
from ..helpers import Manifest
|
||||
from ..helpers import HardLinkManager
|
||||
from ..helpers import ProgressIndicatorPercent
|
||||
from ..helpers import get_tar_filter
|
||||
from ..helpers import dash_open
|
||||
from ..helpers import msgpack
|
||||
from ..helpers import create_filter_process
|
||||
|
@ -33,6 +32,24 @@ from ..logger import create_logger
|
|||
logger = create_logger(__name__)
|
||||
|
||||
|
||||
def get_tar_filter(fname, decompress):
|
||||
# Note that filter is None if fname is '-'.
|
||||
if fname.endswith((".tar.gz", ".tgz")):
|
||||
filter = "gzip -d" if decompress else "gzip"
|
||||
elif fname.endswith((".tar.bz2", ".tbz")):
|
||||
filter = "bzip2 -d" if decompress else "bzip2"
|
||||
elif fname.endswith((".tar.xz", ".txz")):
|
||||
filter = "xz -d" if decompress else "xz"
|
||||
elif fname.endswith((".tar.lz4",)):
|
||||
filter = "lz4 -d" if decompress else "lz4"
|
||||
elif fname.endswith((".tar.zstd",)):
|
||||
filter = "zstd -d" if decompress else "zstd"
|
||||
else:
|
||||
filter = None
|
||||
logger.debug("Automatically determined tar filter: %s", filter)
|
||||
return filter
|
||||
|
||||
|
||||
class TarMixIn:
|
||||
@with_repository(compatibility=(Manifest.Operation.READ,))
|
||||
@with_archive
|
||||
|
|
|
@ -17,7 +17,7 @@ from .fs import secure_erase, safe_unlink, dash_open, os_open, os_stat, umount
|
|||
from .fs import O_, flags_root, flags_dir, flags_special_follow, flags_special, flags_base, flags_normal, flags_noatime
|
||||
from .fs import HardLinkManager
|
||||
from .manifest import Manifest, NoManifestError, MandatoryFeatureUnsupported, AI_HUMAN_SORT_KEYS
|
||||
from .misc import sysinfo, log_multi, consume, get_tar_filter
|
||||
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 remove_surrogates, eval_escapes, decode_dict, positive_int_validator, interval
|
||||
|
|
|
@ -189,21 +189,3 @@ def iter_separated(fd, sep=None, read_size=4096):
|
|||
# or if there was no data before EOF
|
||||
if len(part) > 0: # type: ignore[arg-type]
|
||||
yield part
|
||||
|
||||
|
||||
def get_tar_filter(fname, decompress):
|
||||
# Note that filter is None if fname is '-'.
|
||||
if fname.endswith((".tar.gz", ".tgz")):
|
||||
filter = "gzip -d" if decompress else "gzip"
|
||||
elif fname.endswith((".tar.bz2", ".tbz")):
|
||||
filter = "bzip2 -d" if decompress else "bzip2"
|
||||
elif fname.endswith((".tar.xz", ".txz")):
|
||||
filter = "xz -d" if decompress else "xz"
|
||||
elif fname.endswith((".tar.lz4",)):
|
||||
filter = "lz4 -d" if decompress else "lz4"
|
||||
elif fname.endswith((".tar.zstd",)):
|
||||
filter = "zstd -d" if decompress else "zstd"
|
||||
else:
|
||||
filter = None
|
||||
logger.debug("Automatically determined tar filter: %s", filter)
|
||||
return filter
|
||||
|
|
Loading…
Reference in New Issue