Add a utility to generate a hashsum of a file
This commit is contained in:
parent
0517ef0782
commit
38bd19ea9a
@ -16,6 +16,7 @@ import subprocess
|
|||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
|
import hashlib
|
||||||
|
|
||||||
def _doRunCommand(command, logger, rundir='/tmp', output=subprocess.PIPE, error=subprocess.PIPE, env=None):
|
def _doRunCommand(command, logger, rundir='/tmp', output=subprocess.PIPE, error=subprocess.PIPE, env=None):
|
||||||
"""Run a command and log the output. Error out if we get something on stderr"""
|
"""Run a command and log the output. Error out if we get something on stderr"""
|
||||||
@ -86,3 +87,29 @@ def _ensuredir(target, logger, force=False, clean=False):
|
|||||||
else:
|
else:
|
||||||
sys.stderr(message)
|
sys.stderr(message)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
def _doCheckSum(path, hash, logger, binary=True):
|
||||||
|
"""Generate a checksum hash from a provided path.
|
||||||
|
Set binary to false if the file is not binary.
|
||||||
|
Return the hash"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
func = getattr(hashlib, hash)
|
||||||
|
except AttributeError:
|
||||||
|
logger.error("Invalid hash type: %s" % hash)
|
||||||
|
return False
|
||||||
|
|
||||||
|
if binary:
|
||||||
|
flags = 'rb'
|
||||||
|
else:
|
||||||
|
flags = 'r'
|
||||||
|
|
||||||
|
try:
|
||||||
|
myfile = open(path, 'rb')
|
||||||
|
except IOError, e:
|
||||||
|
logger.error("Could not open file %s: %s" % (path, e))
|
||||||
|
return False
|
||||||
|
|
||||||
|
sum = func(myfile.read()).hexdigest()
|
||||||
|
|
||||||
|
return sum
|
||||||
|
Loading…
Reference in New Issue
Block a user