Source code for bbarchivist.scripts.kompressor
#!/usr/bin/env python3
"""Compress all files in a directory."""
import os # path operations
import sys # load arguments
from bbarchivist import archiveutils # main program
from bbarchivist import argutils # arguments
from bbarchivist import utilities # bool parsing
__author__ = "Thurask"
__license__ = "WTFPL v2"
__copyright__ = "2015-2018 Thurask"
[docs]def kompressor_main():
"""
Parse arguments from argparse/questionnaire.
Invoke :func:`bbarchivist.barutils.compress` with those arguments.
"""
parser = argutils.default_parser("bb-kompressor", "Compress files")
parser.add_argument(
"-m",
"--method",
help="Compression method",
nargs="?",
default=None,
dest="method",
type=argutils.valid_method)
parser.add_argument(
"-nv",
"--no-verify",
help="Don't verify archives",
action="store_false",
default=True,
dest="verify")
parser.add_argument(
"folder",
help="Working directory, default is local",
nargs="?",
default=None)
parser.set_defaults()
args = parser.parse_args(sys.argv[1:])
args.folder = utilities.dirhandler(args.folder, os.getcwd())
if args.method is None:
method = archiveutils.compress_config_loader()
if method == "7z" and not utilities.prep_seven_zip(False):
method = "zip"
else:
method = args.method
psz = utilities.prep_seven_zip(False)
szexe = utilities.get_seven_zip(False) if (method == "7z" and psz) else None
workfolder = args.folder
archiveutils.compress_config_writer()
print(" ")
archiveutils.compress(workfolder, method, szexe, None)
if args.verify:
archiveutils.verify(workfolder, method, szexe, "arcsonly")
if __name__ == "__main__":
kompressor_main()