#! /opt/bin/dash
#
# os/cgi/mlfq-check

export LC_COLLATE=C

echo "Content-type: text/plain\n"
user=`echo "${REMOTE_USER}" | tr -dc '[:alnum:]' | tr '[:upper:]' '[:lower:]'`
if [ -z "$user" ]; then echo "Bad user: ${REMOTE_USER} -> $user"; exit 1; fi
if [ -n "$HTTP_HOST" ]; then cd /os/prog/mlfq || exit 1; fi
echo "$user - MLFQ log\n"

echo "score: max (good/(good+bad))*100\n"

for n in 1 2 3
do
  grep " $user ${n}:" log | awk -v "n=$n" 'BEGIN { good=0; total=1; when=""; } {
   if( $10 > good) { good = $10; total = good + $12; when = $0; } }
   END { score=(good/total)*100; printf("%s: %.2f\n%s\n\n", n, score, when); }'
done

echo "all:\n"

grep " $user " log

# Sat May  2 15:57:15 EDT 2020 rperry 1: good 2 bad 36 in: Ut18j0XUP1Ut18j1X
#   1   2  3        4   5    6      7  8    9 10 11 12

#| while read line
#do
# left=$(echo "$line"  | sed -e 's/ in:.*//')
# right=$(echo "$line" | sed -e 's/^.*in: //' -e 's/P[123]//' -e 's/t//g' | tr 'U' '\n' | sort -n | tr '\n' ' ')
# echo "$left $right"
#done
