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 Manifest
|
||||||
from ..helpers import HardLinkManager
|
from ..helpers import HardLinkManager
|
||||||
from ..helpers import ProgressIndicatorPercent
|
from ..helpers import ProgressIndicatorPercent
|
||||||
from ..helpers import get_tar_filter
|
|
||||||
from ..helpers import dash_open
|
from ..helpers import dash_open
|
||||||
from ..helpers import msgpack
|
from ..helpers import msgpack
|
||||||
from ..helpers import create_filter_process
|
from ..helpers import create_filter_process
|
||||||
|
@ -33,6 +32,24 @@ from ..logger import create_logger
|
||||||
logger = create_logger(__name__)
|
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:
|
class TarMixIn:
|
||||||
@with_repository(compatibility=(Manifest.Operation.READ,))
|
@with_repository(compatibility=(Manifest.Operation.READ,))
|
||||||
@with_archive
|
@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 O_, flags_root, flags_dir, flags_special_follow, flags_special, flags_base, flags_normal, flags_noatime
|
||||||
from .fs import HardLinkManager
|
from .fs import HardLinkManager
|
||||||
from .manifest import Manifest, NoManifestError, MandatoryFeatureUnsupported, AI_HUMAN_SORT_KEYS
|
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 .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
|
||||||
from .parseformat import bin_to_hex, safe_encode, safe_decode
|
from .parseformat import bin_to_hex, safe_encode, safe_decode
|
||||||
from .parseformat import remove_surrogates, eval_escapes, decode_dict, positive_int_validator, interval
|
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
|
# or if there was no data before EOF
|
||||||
if len(part) > 0: # type: ignore[arg-type]
|
if len(part) > 0: # type: ignore[arg-type]
|
||||||
yield part
|
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