#!/usr/bin/python
# coding=UTF-8
from __future__ import print_function
import os, json, sys
import os.path


if __name__ == '__main__':
    dist_lp = 'dist/' + sys.argv[1] + '/'
    src_md = 'src/' + sys.argv[1] + '.md'

    if not os.path.exists(src_md):
        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()

    # Lab1
    try:
        os.makedirs(dist_lp)
    except OSError:
        pass

    with open(src_md, 'rb') as labin, open('src/'+sys.argv[1]+'.json', 'rb') as datin:
        data = json.load(datin)
        lab = labin.read().decode('utf8')

    for ex_no, d in enumerate(data, start=1):
        plab = lab
        d['lp'] = unicode(ex_no)
        print('Processing %s-%s' % (sys.argv[1], ex_no, ))

        for k, v in d.iteritems():
            plab = plab.replace(u'$%s$' % (k, ), v)

        with open(dist_lp+'%s.md' % (ex_no, ), 'wb') as labout:
            labout.write(header_bin)
            labout.write(plab.encode('utf8'))
            labout.write(footer_bin)

        os.system(('pandoc %s%s.md -s -o %s%s.pdf') % (dist_lp, ex_no, dist_lp, ex_no))
        os.unlink(dist_lp+'%s.md' % (ex_no, ))