]> gitweb.fluxo.info Git - ckandumper.git/commitdiff
Calculate hash using a subprocess to avoid memory consumption
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 16 May 2019 23:21:17 +0000 (20:21 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 16 May 2019 23:21:17 +0000 (20:21 -0300)
ckandumper

index 55cd13acb8f89eed6860eb561da3b0e5fb39edc5..a11bb2424be0d64e778bb579b783b31723b191f2 100755 (executable)
@@ -95,12 +95,17 @@ class DownloadMultiple:
             output.write(str(datetime.datetime.now()) + '\n')
             output.close()
 
-            # File might be too big, so we're not computing it's hash here
-            #if os.path.exists(local_filename):
-            #    content = open(local_filename, 'rb')
-            #    output  = open(local_filename + '.sha256', 'w')
-            #    output.write(sha256(content.read()).hexdigest() + '  ' + os.path.basename(local_filename) + '\n')
-            #    output.close()
+            if os.path.exists(local_filename):
+                # File might be too big, so we're not computing it's inside the script
+                #content = open(local_filename, 'rb')
+                #output  = open(local_filename + '.sha256', 'w')
+                #output.write(sha256(content.read()).hexdigest() + '  ' + os.path.basename(local_filename) + '\n')
+                #output.close()
+                hasher  = 'cd ' + os.path.dirname(local_filename) +  '&& /usr/bin/sha256sum '
+                hasher += os.path.basename(local_filename) + ' > ' + os.path.basename(local_filename) + '.sha256'
+                hash    = await asyncio.create_subprocess_shell(hasher,
+                                                               stdout=asyncio.subprocess.PIPE,
+                                                               stderr=asyncio.subprocess.PIPE)
 
             if not str(proc.returncode) in self.globalstats['exitstatus']:
                 self.globalstats['exitstatus'][str(proc.returncode)] = []