Skip to content

Commit

Permalink
support reading data from stdin
Browse files Browse the repository at this point in the history
filename is set to <sha256 of input data>.dat
  • Loading branch information
fracai committed Apr 27, 2011
1 parent e93d1b5 commit 63f1b3a
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions hash_blocks
Expand Up @@ -37,25 +37,40 @@ if __name__ == "__main__":
except IndexError: except IndexError:
err.write("Usage: %s <file>\n" % sys.argv[0]) err.write("Usage: %s <file>\n" % sys.argv[0])
exit(1) exit(1)
f = open(filename, "rb")
if filename == '-':
f = sys.stdin
else:
f = open(filename, "rb")
barray = [] barray = []


size = 0 size = 0
hash = hashlib.sha256()
while True: while True:
data = f.read(BLOCKSIZE) data = f.read(BLOCKSIZE)
if not data: if not data:
break break
size += len(data) size += len(data)
hash.update(data)
barray.append(hashlib.sha256(data).hexdigest()) barray.append(hashlib.sha256(data).hexdigest())


stat = os.stat(filename)

outdata = { outdata = {
"blocks":barray, "blocks":barray,
"size":size, "size":size,
"name":path.basename(filename),
"mtime":stat.st_mtime,
} }
if filename == '-':
import time;
outdata.update({
"name":hash.hexdigest()+".dat",
"mtime":time.mktime(time.localtime()),
})
else:
stat = os.stat(filename)
outdata.update({
"name":path.basename(filename),
"mtime":stat.st_mtime,
})

outdata = json.dumps(outdata) + '\n' outdata = json.dumps(outdata) + '\n'


out.write(outdata) out.write(outdata)
Expand Down

0 comments on commit 63f1b3a

Please sign in to comment.