aboutsummaryrefslogtreecommitdiff
path: root/make_guides.py
blob: 40c2c3ba295b536ccdfa38baaccc6cb2239ac6e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/env python3

import argparse, os
#import docutils

def basename(fname):
    '''Returns the name of the guide from either its name or its directory'''
    if os.path.isdir(os.path.join('guides',fname)):
        return fname
    elif os.path.isdir(fname):
        return os.path.basename(os.path.abspath(fname))
    else:
        msg = '%s is not a valid directory' % fname
        raise argparse.ArgumentTypeError(msg)

def build_latex(guide):
    '''Builds the LaTeX source for the guide'''
    build_dir = os.path.join('build',guide)
    tex_name = guide+'.tex'
    # DEBUG
    print('Building LaTeX...')
    if not os.path.isdir(build_dir):
        os.mkdir(build_dir)
    fp = open(os.path.join(build_dir,tex_name),'w')
    fp.close()

def build_pdf(guide):
    '''Builds the A6 PDF for the guide'''
    build_dir = os.path.join('build',guide)
    dist_dir = os.path.join('dist','PDF')
    tex_name = guide+'.tex'
    pdf_name = guide+'.pdf'
    # check for prerequisites
    if not os.path.isfile(os.path.join(build_dir,tex_name)):
        build_latex(guide)
    # DEBUG
    print('Building PDF...')
    if not os.path.isdir(dist_dir):
        os.mkdir(dist_dir)
    fp = open(os.path.join(dist_dir,pdf_name),'w')
    fp.close()

def build_nup_pdf(guide):
    '''Builds the nup-ed PDF for the guide'''
    dist_dir = os.path.join('dist','PDF')
    pdf_name = guide+'.pdf'
    nup_name = guide+'-A6suA4.pdf'
    # check for prerequisites
    if not os.path.isfile(os.path.join(dist_dir,pdf_name)):
        build_pdf(guide)
    # DEBUG
    print('Building nup PDF...')
    if not os.path.isdir(dist_dir):
        os.mkdir(dist_dir)
    fp = open(os.path.join(dist_dir,nup_name),'w')
    fp.close()

def main():
    parser = argparse.ArgumentParser(description='Build a distribution format of a 1800 words article')
    parser.add_argument('guide', nargs='+', type=basename,
            help='Source directory of the article')
    parser.add_argument('-l','--latex',action='store_true',
            help='Generate LaTeX source')
    parser.add_argument('-p','--pdf',action='store_true',
            help='Generate PDF')
    parser.add_argument('-n','--nup-pdf',action='store_true',
            help='Generate nup-ed A4 PDF')
    args = parser.parse_args()

    for guide in args.guide:
        if args.latex:
            build_latex(guide)
        if args.pdf:
            build_pdf(guide)
        if args.nup_pdf:
            build_nup_pdf(guide)


if __name__ == '__main__': main()