#! /usr/bin/env python3
import platform
import subprocess
import json
import re
cpu = platform.machine()
output_file = 'hashes_%s.json'%cpu
version_file = 'Sage_framework/repo/sage/VERSION.txt'
version_re = re.compile(r'SageMath version ([0-9]*\.[0-9]*)')
with open(version_file) as input_file:
m = version_re.match(input_file.readline())
sage_version = m.groups()[0]
dist_file = 'SageMath-%s_%s.dmg'%(sage_version, cpu)
def main():
md5 = subprocess.run(
['md5', dist_file],
capture_output=True).stdout.decode('ascii').split()[-1]
sha256 = subprocess.run(
['shasum', '-b', '-a', '256', dist_file],
capture_output=True).stdout.decode('ascii').split()[0]
hashes = {'file': dist_file, 'md5': md5, 'sha256': sha256}
with open(output_file, 'w') as output:
output.write(json.dumps(hashes, sort_keys=True, indent=4))
output.write('\n')
if __name__ == '__main__':
main()