#!/usr/bin/env python

import sys
import argparse
from coursebin import college, logging

parser = argparse.ArgumentParser(description='Grade a course.')
parser.add_argument('-p', '--course-path', type=str,
                    dest='course_path', required=False,
                    help='Directory of the course to grade')
parser.add_argument('-n', '--course-name', type=str,
                    dest='course_name', required=False,
                    help="""Name of the course to grade. Begins searching
                            in the default semester then searches other
                            semesters after warning the user""")
parser.add_argument('-g', '--letter-grade', type=str,
                    dest='letter_grade', required=False,
                    help="""Letter grade of course. Must be a key in the
                            gradingScheme specified in the config.json file""")
parser.add_argument('-c', '--credits', type=str,
                    dest='course_name', required=False,
                    help="""Name of the course to grade. Begins searching
                            in the default semester then searches other
                            semesters after warning the user""")
parser.add_argument('-o', '--overwrite', dest='overwrite', required=False,
                    action='store_true', default=False,
                    help="""Overwrite the courses current grade even if it has
                            already been input""")
parser.add_argument('-q', '--quiet', dest='quiet', required=False,
                    action='store_true', default=False,
                    help='Suppress output')

semester = college.default_semester
logging.info('New course in semester %s' % semester.semester_numb)
if semester == None:
    print 'error'
    sys.exit(1)
else:
    while True:
        try:
            inp = raw_input('Course name: ')
        except KeyboardInterrupt:
            sys.exit(1)
        else:
            if not inp:
                continue
            else:
                semester.new_course(inp)
                break

