From b3e3fda7c301c6c43754f22b67d639745004577a Mon Sep 17 00:00:00 2001
From: Yves Noirjean <yves.noirjean@id.ethz.ch>
Date: Wed, 2 May 2018 14:47:33 +0200
Subject: [PATCH] obis - using python md5 hash function instead of calling
 external cmd for better compatibility

---
 src/python/OBis/obis/dm/git.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/python/OBis/obis/dm/git.py b/src/python/OBis/obis/dm/git.py
index 0e87cd14c3e..dad15e91372 100644
--- a/src/python/OBis/obis/dm/git.py
+++ b/src/python/OBis/obis/dm/git.py
@@ -1,3 +1,4 @@
+import hashlib
 import json
 import shutil
 import os
@@ -152,13 +153,18 @@ class ChecksumGeneratorCrc32(object):
 
 class ChecksumGeneratorMd5(object):
     def get_checksum(self, file):
-        md5_result = run_shell(['md5', file], raise_exception_on_failure=True)
         return {
-            'checksum': md5_result.output.split(" ")[-1],
+            'checksum': self.md5(file),
             'checksumType': 'MD5',
             'fileLength': os.path.getsize(file),
             'path': file
         }
+    def md5(self, file):
+        hash_md5 = hashlib.md5()
+        with open(file, "rb") as f:
+            for chunk in iter(lambda: f.read(4096), b""):
+                hash_md5.update(chunk)
+        return hash_md5.hexdigest()
 
 
 class ChecksumGeneratorGitAnnex(object):
-- 
GitLab