46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import os
|
|
from tempfile import mkstemp
|
|
import pathlib
|
|
import platform
|
|
import glob
|
|
import hashlib
|
|
import configparser
|
|
import json
|
|
import traceback
|
|
import time
|
|
import timeit
|
|
import re
|
|
|
|
def get_directory_hash(directory):
|
|
directory_hash = hashlib.sha1()
|
|
if not os.path.exists (directory):
|
|
return -1
|
|
|
|
try:
|
|
for root, dirs, files in os.walk(directory):
|
|
for names in files:
|
|
path = os.path.join(root, names)
|
|
try:
|
|
f = open(path, 'rb')
|
|
except:
|
|
# You can't open the file for some reason
|
|
f.close()
|
|
continue
|
|
|
|
while 1:
|
|
# Read file in as little chunks
|
|
buf = f.read(4096)
|
|
if not buf: break
|
|
new = hashlib.sha1(buf)
|
|
directory_hash.update(new.digest())
|
|
f.close()
|
|
|
|
except:
|
|
# Print the stack traceback
|
|
traceback.print_exc()
|
|
return -2
|
|
|
|
retVal = directory_hash.hexdigest()
|
|
#print_yellow("Hash Value for {} is {}".format(directory,retVal))
|
|
return directory_hash.hexdigest()
|