#!/bin/bash
#2008-03-24 1:00
studentsF="students.txt"
ratingF="hodnoceni.txt"
variantsIN="A-Z"
fileOUT="test.txt"
dirOUT="comments"

for i in $*           #projde vsechny parametry prikazoveho radku
do
  case "$1" in
    "-o" )
      dirOUT="$2"                         # jiny nez comments
      if [ -z "$2" ]; then                # je string != NULL?
        dirOUT=.                          # pokud ano, pouzij lokalni adresar
      fi
      shift
      ;;
    "-h" )
      ratingF="$2"                        # jine nez hodnoceni.txt
      shift
      ;;
    "-s" )
      studentsF="$2"                      # jine nez students.txt
      shift
      ;;
    "-v" )
      variantsIN="$2"                     # jine nez A-Z
      shift
      ;;
  esac
done

# pokud slozka neexistuje a zaroven opravdu mame nejakou vytvorit
if [ ! -d "$dirOUT" ]; then
  if [ "$dirOUT"!="." ]; then
    mkdir $dirOUT
  fi
fi

# nainicializujeme si pole znaku
for i in {A..Z}; do
  n=$n+1;
  var[n]=$i;
done


cat $studentsF | sort -k 2 -t ";" | while read line; do
    jmeno=`cat <<< "$line" | cut -d ";" -f 1`
    login=`cat <<< "$line" | cut -d ";" -f 2 | tr -d ' '`
    { #skvely zpusob na jednoduchy vystup vseho do souboru
      echo "${jmeno} (${login})"

      for i in {1..26}; do
        hodnoceni[$i]=`cat <<< "$line" | cut -d ";" -f $((i + 2))`
        
        if [ -z ${hodnoceni[i]} ]; then
          break
        fi
        
        suma=$(( suma + hodnoceni[$i] ))
        komentar[$i]=`cat $ratingF | sort | grep -i $login\;[$variantsIN] | \
        grep -i $login\;${var[i]} | cut -d ";" -f 4`
        #prvni grep na odfiltrovani nepovolenych variant, druhy na pozadovanou
      done
     
      for i in {1..26}; do
      # druhy uplne stejny cyklus se provadi jen kvuli odfiltrovani posledni
      # hodnoty, ktera neni hodnotou, ale souctem vsech predchozich
      # mirne CPU-narocnejsi, vyrazne progamatorsky snadnejsi
        if [ -z "${hodnoceni[i]}" ]; then #vypisi se jenom existujici hodnoceni
          break;
        fi 
        
        if [ "${hodnoceni[i]}" != "$(( suma/2 ))" ]; then
        # a komentare klidne i ty prazdne, at se to pak dal dobre parsuje
          echo "${var[i]} : ${hodnoceni[i]}"
          echo "Komentar ${var[i]}: ${komentar[i]}"
        fi 
      done
     
      suma=$(( suma / 2 )) #parsovano i se sumou, timhle se to vyrusi
      echo "Suma: $suma"
      suma=0 #pro pouziti v dalsi iteraci musi byt nula
    } > $dirOUT/$login
  done

#tady se bude volat Tomasuv skript
#neco jako ./stats.sh -h $ratingF -v $variantsIN -o $dirOUT 
#End of file

