diff options
-rwxr-xr-x | make_guides.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/make_guides.py b/make_guides.py index 066c83e..40c2c3b 100755 --- a/make_guides.py +++ b/make_guides.py @@ -1,3 +1,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() |