Merge branch 'master' of git.clinicalfuture.com:arvados
[arvados.git] / crunch_scripts / hash
1 #!/usr/bin/env python
2
3 import arvados
4 import hashlib
5 import re
6
7 arvados.job_setup.one_task_per_input_file(if_sequence=0, and_end_task=True)
8
9 this_job = arvados.current_job()
10 this_task = arvados.current_task()
11 this_task_input = this_task['parameters']['input']
12
13 if 'algorithm' in this_job['script_parameters']:
14     alg = this_job['script_parameters']
15 else:
16     alg = 'md5'
17 digestor = hashlib.new(alg)
18
19 input_stream = arvados.DataReader(this_task_input)
20 while True:
21     buf = input_stream.read(2**20)
22     if len(buf) == 0:
23         break
24     digestor.update(buf)
25
26 hexdigest = digestor.hexdigest()
27 file_name = re.sub(r'^[^/]+/', '', this_task_input)
28
29 input_stream.close()
30
31 this_task.set_output("%s %s\n" % (hexdigest, file_name))
32