Total Complexity | 2 |
Total Lines | 51 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | #!/usr/bin/env python3 |
||
2 | """Applies hash functions to files.""" |
||
3 | |||
4 | import os # path operations |
||
5 | import sys # load arguments |
||
6 | |||
7 | from bbarchivist import argutils # arguments |
||
8 | from bbarchivist import hashutils # main program |
||
9 | from bbarchivist import utilities # input validation |
||
10 | |||
11 | __author__ = "Thurask" |
||
12 | __license__ = "WTFPL v2" |
||
13 | __copyright__ = "2015-2018 Thurask" |
||
14 | |||
15 | |||
16 | def filehasher_main(): |
||
17 | """ |
||
18 | Parse arguments from argparse/questionnaire. |
||
19 | |||
20 | Invoke :func:`bbarchivist.hashutils.verifier` with those arguments. |
||
21 | """ |
||
22 | hashdict = hashutils.verifier_config_loader() |
||
23 | hashutils.verifier_config_writer(hashdict) |
||
24 | if len(sys.argv) > 1: |
||
25 | parser = argutils.default_parser("bb-filehasher", "Hash files") |
||
26 | parser.add_argument( |
||
27 | "folder", |
||
28 | help="Working directory, default is local", |
||
29 | nargs="?", |
||
30 | default=None, |
||
31 | type=argutils.file_exists) |
||
32 | parser.add_argument( |
||
33 | "-s", |
||
34 | "--selective", |
||
35 | dest="selective", |
||
36 | help="Filter out files generated by this package", |
||
37 | default=False, |
||
38 | action="store_true") |
||
39 | parser.set_defaults() |
||
40 | args = parser.parse_args(sys.argv[1:]) |
||
41 | args.folder = utilities.dirhandler(args.folder, os.getcwd()) |
||
42 | hashutils.verifier(args.folder, hashdict) |
||
43 | else: |
||
44 | folder = os.getcwd() |
||
45 | print(" ") |
||
46 | hashutils.verifier(folder, hashdict) |
||
47 | |||
48 | |||
49 | if __name__ == "__main__": |
||
50 | filehasher_main() |
||
51 |