]> granicus.if.org Git - graphviz/commitdiff
extract checksumming in deploy script into a function
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 3 Mar 2021 01:50:59 +0000 (17:50 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Tue, 9 Mar 2021 15:43:33 +0000 (07:43 -0800)
Related to #1955.

ci/deploy.py

index ac0bf9ff1fa408c38daa755c07a348d221ca7192..99d49dcd468f18b8cc104ff235561fc39d591e66 100644 (file)
@@ -17,7 +17,7 @@ import shutil
 import stat
 import subprocess
 import sys
-from typing import List, Optional
+from typing import Generator, List, Optional
 
 # logging output stream, setup in main()
 log = None
@@ -62,6 +62,20 @@ def upload(version: str, path: str, name: Optional[str] = None) -> str:
 
   return target
 
+def checksum(path: str) -> Generator[str, None, None]:
+  '''
+  generate checksum(s) for the given file
+  '''
+
+  assert os.path.exists(path)
+
+  log.info(f'MD5 summing {path}')
+  check = f'{path}.md5'
+  with open(check, 'wt') as f:
+    with open(path, 'rb') as data:
+      f.write(f'{hashlib.md5(data.read()).hexdigest()}  {path}\n')
+  yield check
+
 def main(args: List[str]) -> int:
 
   # setup logging to print to stderr
@@ -133,15 +147,10 @@ def main(args: List[str]) -> int:
       log.error(f'source {tarball} not found')
       return -1
 
-    # generate a checksum for the source tarball
-    log.info(f'MD5 summing {tarball}')
-    checksum = f'{tarball}.md5'
-    with open(checksum, 'wt') as f:
-      with open(tarball, 'rb') as data:
-        f.write(f'{hashlib.md5(data.read()).hexdigest()}  {tarball}\n')
-
+    # accrue the source tarball and accompanying checksum(s)
     assets.append(upload(package_version, tarball))
-    assets.append(upload(package_version, checksum))
+    for check in checksum(tarball):
+      assets.append(upload(package_version, check))
 
   for stem, _, leaves in os.walk('Packages'):
     for leaf in leaves: