Completed
Push — master ( 1db2c1...2d4f92 )
by John
01:14
created

kompressor_main()   C

Complexity

Conditions 7

Size

Total Lines 46

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
dl 0
loc 46
rs 5.5
c 0
b 0
f 0
1
#!/usr/bin/env python3
2
"""Compress all files in a directory."""
3
4
import sys  # load arguments
5
import os  # path operations
6
from bbarchivist import archiveutils  # main program
7
from bbarchivist import utilities  # bool parsing
8
from bbarchivist import scriptutils  # default parser
9
10
__author__ = "Thurask"
11
__license__ = "WTFPL v2"
12
__copyright__ = "Copyright 2015-2016 Thurask"
13
14
15
def kompressor_main():
16
    """
17
    Parse arguments from argparse/questionnaire.
18
19
    Invoke :func:`bbarchivist.barutils.compress` with those arguments.
20
    """
21
    parser = scriptutils.default_parser("bb-kompressor", "Compress files")
22
    parser.add_argument(
23
        "-m",
24
        "--method",
25
        help="Compression method",
26
        nargs="?",
27
        default=None,
28
        dest="method",
29
        type=utilities.valid_method)
30
    parser.add_argument(
31
        "-nv",
32
        "--no-verify",
33
        help="Don't verify archives",
34
        action="store_false",
35
        default=True,
36
        dest="verify")
37
    parser.add_argument(
38
        "folder",
39
        help="Working directory, default is local",
40
        nargs="?",
41
        default=None)
42
    parser.set_defaults()
43
    args = parser.parse_args(sys.argv[1:])
44
    print(args.verify)
45
    if args.folder is None:
46
        args.folder = os.getcwd()
47
    if args.method is None:
48
        method = archiveutils.compress_config_loader()
49
        if method == "7z" and not utilities.prep_seven_zip(False):
50
            method = "zip"
51
    else:
52
        method = args.method
53
    psz = utilities.prep_seven_zip(False)
54
    szexe = utilities.get_seven_zip(False) if (method == "7z" and psz) else None
55
    workfolder = args.folder
56
    archiveutils.compress_config_writer()
57
    print(" ")
58
    archiveutils.compress(workfolder, method, szexe, None)
59
    if args.verify:
60
        archiveutils.verify(workfolder, method, szexe, "arcsonly")
61
62
63
if __name__ == "__main__":
64
    kompressor_main()
65