diff --git a/build.py b/build.py index 948aa9e504e13adee84eab35ac44d7550392c997..54af4f8b23fdfbe7fa4c2f10283eaa6006eb0988 100644 --- a/build.py +++ b/build.py @@ -4,6 +4,13 @@ import json, sys import os.path +def readin(path, func=lambda x: x, orelse=None): + if os.path.exists(path): + with open(path, 'rb') as fin: + return func(fin.read()) + else: + return orelse + if __name__ == '__main__': for lab_name in ('lab'+str(x) for x in xrange(7, start=1)): @@ -14,9 +21,8 @@ if __name__ == '__main__': print('Aborting, no src file') sys.exit() - with open('src/header.md') as fh, open('src/footer.md', 'rb') as ff: - header_bin = fh.read() - footer_bin = ff.read() + header_bin = readin('src/header.md') + footer_bin = readin('src/footer.md') # Make directories try: @@ -25,15 +31,10 @@ if __name__ == '__main__': pass # Load data - if os.path.exists('src/'+lab_name+'.json'): - with open('src/' + lab_name + '.json', 'rb') as datin: - data = json.load(datin) - else: - data = [{}] + data = readin('src/'+lab_name+'.json', json.load, orelse=[{}]) # Load text - with open(src_md, 'rb') as labin: - lab = labin.read().decode('utf8') + lab = readin(src_md, lambda x: x.decode('utf8')) # Swap placholders for ex_no, d in enumerate(data, start=1):