#!/usr/bin/env python
import time
import os
from semester_cleaning import clean_temporaries
t = time.localtime()
year = t[0]
month = t[1]

if month == 1:
    next_term = 'sp' + str(year)[2:4]            #sp09
    current_term = 'fa' + str(year-1)[2:4]       #fa08
    current_term_long = 'Fall ' + str(year-1)    #Fall 2008
    previous_term = 'sp' + str(year-1)[2:4]      #sp08
    previous_term_long = 'Spring ' + str(year-1) #Spring 2008
elif month == 7:
    next_term = 'fa' + str(year)[2:4]
    current_term = 'sp' + str(year)[2:4]
    current_term_long = 'Spring ' + str(year)
    previous_term = 'fa' + str(year-1)[2:4]
    previous_term_long = 'Fall ' + str(year-1)
else:
    print "Month must be January or July!"
    exit

terms = [next_term]
if next_term[:2] == 'fa': terms.append(next_term.replace('fa', 'sp'))
for y in reversed(range(3, int(next_term[2:]))):
    terms.append('fa%02d' % y)
    terms.append('sp%02d' % y)
terms.append('fa02')

f = open('/mit/course-search/web_scripts/search/search.pl')
out = open('/mit/course-search/web_scripts/search/search.pl.new', 'w')
found = False
for line in f:
    if line[:len('sub get_terms { return')] == 'sub get_terms { return':
        found = True
        line = 'sub get_terms { return (%s); }\n' % ', '.join('"%s"' % i for i in terms)
    out.write(line)
if not found:
    print "Did not find get_terms!"

f.close()
out.close()
os.chmod('/mit/course-search/web_scripts/search/search.pl.new', 00700) # make it executable

os.mkdir('/mit/course-search/web_scripts/search/urls-' + next_term)
os.mkdir('/mit/course-search/web_scripts/search/urls-' + next_term + '/save')
os.remove('/mit/course-search/web_scripts/search/urls')
os.symlink('/mit/course-search/web_scripts/search/urls-' + next_term, '/mit/course-search/web_scripts/search/urls')
os.rename('/mit/course-search/web_scripts/search/search.pl', '/mit/course-search/web_scripts/search/search.pl.old')
os.rename('/mit/course-search/web_scripts/search/search.pl.new', '/mit/course-search/web_scripts/search/search.pl')
clean_temporaries(dryrun=False, verbose=False, limit=None)
