#! /opt/bin/dash
#
# os/cgi/malloc-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/malloc || exit 1; fi
echo "$user - freespace log\n"

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

for n in "BEST" "WORST" "FIRST"
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

# Wed May 13 11:01:27 EDT 2020 rperry WORST: good 26 bad 44 in: ...
#   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/PBEST//' -e 's/PWORST//' -e 's/PFIRST//' \
#  | tr 'U' '\n' | sed -e 's/^[ras]//' | sort -n | tr '\n' ' ')
# echo "$left $right"
#done
