48 lines
1.7 KiB
Python
Executable file
48 lines
1.7 KiB
Python
Executable file
#!/usr/bin/python
|
|
"""
|
|
Program that calculates several hashes for a given CD image.
|
|
|
|
@copyright: Red Hat 2008-2009
|
|
"""
|
|
|
|
import os, sys, optparse, logging
|
|
import common
|
|
from autotest_lib.client.common_lib import logging_manager
|
|
from autotest_lib.client.bin import utils
|
|
from autotest_lib.client.virt import virt_utils
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = optparse.OptionParser("usage: %prog [options] [filenames]")
|
|
options, args = parser.parse_args()
|
|
|
|
logging_manager.configure_logging(virt_utils.VirtLoggingConfig())
|
|
|
|
if args:
|
|
filenames = args
|
|
else:
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
for filename in filenames:
|
|
filename = os.path.abspath(filename)
|
|
|
|
file_exists = os.path.isfile(filename)
|
|
can_read_file = os.access(filename, os.R_OK)
|
|
if not file_exists:
|
|
logging.critical("File %s does not exist!", filename)
|
|
continue
|
|
if not can_read_file:
|
|
logging.critical("File %s does not have read permissions!",
|
|
filename)
|
|
continue
|
|
|
|
logging.info("Hash values for file %s", os.path.basename(filename))
|
|
logging.info("md5 (1m): %s", utils.hash_file(filename, 1024*1024,
|
|
method="md5"))
|
|
logging.info("sha1 (1m): %s", utils.hash_file(filename, 1024*1024,
|
|
method="sha1"))
|
|
logging.info("md5 (full): %s", utils.hash_file(filename, method="md5"))
|
|
logging.info("sha1 (full): %s", utils.hash_file(filename,
|
|
method="sha1"))
|
|
logging.info("")
|