#!/usr/bin/python

import sys
if len(sys.argv) != 2:
    exit("koriscenje skripta: " + sys.argv[0] + " path_to_dir")

dir = sys.argv[1]

import os
if not os.path.isdir(dir):
    exit("Nepostojeci direktorijum")

try:
    f = open(dir + '/indeksi', 'r')
except IOError:
    exit("Nemoguce otvaranje fajla")

imena = {}

while True:
    linija = f.readline()
    if linija == '':
        break
    indeks, ime = linija.strip().split(", ")
    imena[indeks] = ime

f.close()

import re

reg_exp = r'^m[rilvnm]\d{5}$'
pattern = re.compile(reg_exp)
reg_exp1 = r'^(\d+)\.(py|java|pas|c|html)$'
pattern1 = re.compile(reg_exp1)

mapa = {}

max_zad = 0

for podfolder in os.listdir(dir):
    if os.path.isdir(dir + '/' + podfolder) and pattern.match(podfolder):
        if imena.has_key(podfolder):
            for zadatak in os.listdir(dir + '/' + podfolder):
                m = pattern1.match(zadatak)
                if m is not None:
                    if int(m.group(1)) > max_zad:
                        max_zad = int(m.group(1))
                    mapa[(podfolder, int(m.group(1)))] = m.group(2)
        else:
            print "Student sa indeksom", podfolder, "se ne nalazi u fajlu indeksi"

try:
    f = open("seminarski_radovi.html", "w")
except IOError:
    exit("Nemoguce otvoriti fajl za pisanje")

f.write("<html><head><title>Sem radovi</title></head>")
f.write("<body><table border=1>")

f.write("<tr>")
f.write("<th>Indeks</th><th>Ime i prezime</th>")
for i in range(1, max_zad + 1):
    f.write("<th>" + str(i) + "</th>")
f.write("</tr>")

for s in imena.keys():
    f.write("<tr>")
    f.write("<td>" + s + "</td><td>" + imena[s] + "</td>")
    for i in range(1, max_zad + 1):
        if mapa.has_key((s, i)):
            f.write("<td>" + mapa[(s, i)] + "</td>")
        else:
            f.write("<td> - </td>")

f.write("<table></body></html>")

f.close()
