#!/usr/bin/env python import os, sys, argparse, shutil, subprocess import getpass, time from nnnotes import TEMPLATE_PATH def yes_no(question): sys.stdout.write(question) yes = set(['yes','y', 'ye', '']) no = set(['no','n']) choice = raw_input().lower() if choice in yes: return True elif choice in no: return False else: sys.stdout.write("Please respond with 'yes' or 'no'") def check_note_exists(title): if os.path.isdir(title): q = yes_no('The note already exists in the current directory.\nDo you want to proceed and erase the current note? [y/n] ') if not q: sys.exit('Notes already exists. Aborting.') return True return False if __name__ == '__main__': p = argparse.ArgumentParser() p.add_argument('-t', '--title', action="store", help="title of the note", required=True) p.add_argument('-f', '--file', action="store", help="(pdf) file to extract notes from") p.add_argument('-b', '--bibtex', action="store", help="bibtex file containing bibliographical information") p.add_argument('-i', '--bibtexitem', action="store", help="name of the item in the bibtex file") p.add_argument('-s', '--style', action="store", help="bibliographic style") args = p.parse_args() if not check_note_exists(args.title): # make directory for the note os.makedirs(args.title) # copy template files -- this needs to change.... #home = os.path.dirname(os.path.realpath(__file__)) os.system('cp -aR ' + TEMPLATE_PATH + '/* ' + args.title) os.chdir(args.title) # copy note file if it exists if args.file is not None and os.path.isfile(args.file): shutil.copy2(args.file, os.path.basename(args.file)) # style style_arg = '' if args.style is not None: os.system('sed -i.bak "s#CSL\ :=#CSL\ := ' + args.style + '#g" Makefile') style_arg = '-s ' + args.style # bibtex item bibtexitem_arg = '' if args.bibtexitem is not None: bibtexitem_arg = '-i ' + args.bibtexitem # generate bibliographic element if args.bibtex is not None and os.path.isfile(args.bibtex): os.system('sed -i.bak "s#BIB\ :=#BIB\ := ' + args.bibtex + '#g" Makefile') ref = '> ' + subprocess.check_output('csl_unsorted ' + args.bibtex + ' ' + bibtexitem_arg + ' ' + style_arg + ' -f md', shell=True).rstrip() os.system('sed -i.bak "s~*MACHINE-REF*~' + ref + '~g ; s~%\ title~%\ ' + ref + '~g" notes.mmd') author = getpass.getuser() date = time.strftime("%d/%m/%Y") os.system('sed -i.bak "s~%\ author~%\ ' + author + '~g ; s~%\ date~%\ ' + date + '~g" notes.mmd') # cleanup os.system('rm *.bak') os.chdir('..')