Source code for bbarchivist.filehasher_wrap

#!/usr/bin/env python3

import argparse
import sys
import os
try:
    from . import hashwrapper  # @UnusedImport
except SystemError:
    import hashwrapper  # @UnresolvedImport @Reimport
try:
    from . import bbconstants  # @UnusedImport
except SystemError:
    import bbconstants  # @UnresolvedImport @Reimport
try:
    from . import utilities  # @UnusedImport
except SystemError:
    import utilities  # @UnresolvedImport @Reimport


[docs]def main(): """ Parse arguments from argparse/questionnaire. Invoke :func:`bbarchivist.hashwrapper.verifier` with those arguments. """ if len(sys.argv) > 1: parser = argparse.ArgumentParser( prog="bb-filehasher", description="""Applies hash functions to files. Default: SHA-1, SHA-256, MD5""", epilog="http://github.com/thurask/bbarchivist") parser.add_argument( "-v", "--version", action="version", version="%(prog)s " + bbconstants._version) parser.add_argument( "folder", help="Working directory, default is local", nargs="?", default=os.getcwd()) parser.add_argument( "-b", "--block", dest="blocksize", help="Blocksize (bytes), default = 16777216 (16MB)", default=16777216, type=utilities.positive_integer, metavar="INT") hashgroup = parser.add_argument_group( "verifiers", "Verification methods") hashgroup.add_argument( "--crc32", dest="crc32", help="Enable CRC32 verification", action="store_true", default=False) hashgroup.add_argument( "--adler32", dest="adler32", help="Enable Adler-32 verification", action="store_true", default=False) hashgroup.add_argument( "--md4", dest="md4", help="Enable MD4 verification", action="store_true", default=False) hashgroup.add_argument( "--sha224", dest="sha224", help="Enable SHA-224 verification", action="store_true", default=False) hashgroup.add_argument( "--sha384", dest="sha384", help="Enable SHA-384 verification", action="store_true", default=False) hashgroup.add_argument( "--sha512", dest="sha512", help="Enable SHA-512 verification", action="store_true", default=False) hashgroup.add_argument( "--ripemd160", dest="ripemd160", help="Enable RIPEMD-160 verification", action="store_true", default=False) hashgroup.add_argument( "--whirlpool", dest="whirlpool", help="Enable Whirlpool verification", action="store_true", default=False) hashgroup.add_argument( "--no-sha1", dest="sha1", help="Disable SHA-1 verification", action="store_false", default=True) hashgroup.add_argument( "--no-sha256", dest="sha256", help="Disable SHA-256 verification", action="store_false", default=True) hashgroup.add_argument( "--no-md5", dest="md5", help="Disable MD5 verification", action="store_false", default=True) hashgroup.add_argument( "-a", "--all", dest="all", help="Use all methods", action="store_true", default=False) parser.set_defaults() args = parser.parse_args(sys.argv[1:]) if args.all is True: args.adler32 = True args.crc32 = True args.sha1 = True args.sha224 = True args.sha256 = True args.sha384 = True args.sha512 = True args.md5 = True args.md4 = True args.ripemd160 = True args.whirlpool = True hashwrapper.verifier(args.folder, args.blocksize, args.crc32, args.adler32, args.sha1, args.sha224, args.sha256, args.sha384, args.sha512, args.md5, args.md4, args.ripemd160, args.whirlpool) else: folder = os.getcwd() blocksize = 16777216 crc32 = utilities.str2bool(input("CRC32?: ")) adler32 = utilities.str2bool(input("ADLER32?: ")) sha1 = utilities.str2bool(input("SHA-1?: ")) sha224 = utilities.str2bool(input("SHA-224?: ")) sha256 = utilities.str2bool(input("SHA-256?: ")) sha384 = utilities.str2bool(input("SHA-384?: ")) sha512 = utilities.str2bool(input("SHA-512?: ")) md5 = utilities.str2bool(input("MD5?: ")) md4 = utilities.str2bool(input("MD4?: ")) ripemd160 = utilities.str2bool(input("RIPEMD160?: ")) whirlpool = utilities.str2bool(input("WHIRLPOOL?: ")) print(" ") hashwrapper.verifier( folder, blocksize, crc32, adler32, sha1, sha224, sha256, sha384, sha512, md5, md4, ripemd160, whirlpool) smeg = input("Press Enter to exit") # @UnusedVariable