Source code for bbarchivist.scripts.filehasher
#!/usr/bin/env python3
"""Applies hash functions to files."""
import os # path operations
import sys # load arguments
from bbarchivist import argutils # arguments
from bbarchivist import hashutils # main program
from bbarchivist import utilities # input validation
__author__ = "Thurask"
__license__ = "WTFPL v2"
__copyright__ = "2015-2018 Thurask"
[docs]def filehasher_main():
"""
Parse arguments from argparse/questionnaire.
Invoke :func:`bbarchivist.hashutils.verifier` with those arguments.
"""
hashdict = hashutils.verifier_config_loader()
hashutils.verifier_config_writer(hashdict)
if len(sys.argv) > 1:
parser = argutils.default_parser("bb-filehasher", "Hash files")
parser.add_argument(
"folder",
help="Working directory, default is local",
nargs="?",
default=None,
type=argutils.file_exists)
parser.add_argument(
"-s",
"--selective",
dest="selective",
help="Filter out files generated by this package",
default=False,
action="store_true")
parser.set_defaults()
args = parser.parse_args(sys.argv[1:])
args.folder = utilities.dirhandler(args.folder, os.getcwd())
hashutils.verifier(args.folder, hashdict)
else:
folder = os.getcwd()
print(" ")
hashutils.verifier(folder, hashdict)
if __name__ == "__main__":
filehasher_main()