#!/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')

args = parser.parse_args()
if args.quiet:
    logging.setLevel(logging.CRITICAL)

semester = college.default_semester
if not semester:
    e = 'No semesters found... run `newsemester <semester-number>`'
    logging.critical(e)
    sys.exit(1)

if not semester.courses:
    e = 'No courses found... run `newcourse [<course-name>]`'
    logging.critical(e)
    sys.exit(1)

course = semester.select_course()
course.course_complete()

