This commit is the equivalent of a atomic bomb
This commit is contained in:
45
make/util.py
Normal file
45
make/util.py
Normal file
@@ -0,0 +1,45 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user