#!/bin/sh

# **************************** LICENSE START ***********************************
#
# Copyright 2012 ECMWF and INPE. This software is distributed under the terms
# of the Apache License version 2.0. In applying this license, ECMWF does not
# waive the privileges and immunities granted to it by virtue of its status as
# an Intergovernmental Organization or submit itself to any jurisdiction.
#
# ***************************** LICENSE END ************************************

#                                                    (vk 960620)
#                                                   (rev 980807)
# prints some statistics from Metview usage and crash log files
# (log files produced by script 'mvrun').

MVLOGDIR=/home/graphics/cgx/public

VER=$1
[ "$VER" = "" ] && VER=1.8B

MVUSAGELOG=$MVLOGDIR/Metview_usage_$VER
MVCRASHLOG=$MVLOGDIR/Metview_crashlog_$VER

echo
echo "Metview $VER usage:)"
echo "--------------------"
echo

if [ ! -f $MVUSAGELOG ]
then
  echo " >>> File $MVUSAGELOG not found!"
  echo
  exit
fi

#-- first and last date (first field is data):
echo "from: `head -1 $MVUSAGELOG | cut -d';' -f1`"
echo "  to: `tail -1 $MVUSAGELOG | cut -d';' -f1`"

echo
echo "`cat $MVUSAGELOG | wc -l` usages (script start-ups) in total:"
echo "`grep ' i;' $MVUSAGELOG | wc -l` interactive"
echo "`grep ' b;' $MVUSAGELOG | wc -l` batch"
echo

#-- cut: extract user id (from second field)
#-- sort discarding duplicates
#-- count and print usage per users in columns
USERS=`cat $MVUSAGELOG | cut -f2 -d';' | sort -u`
for user in $USERS
do
  echo "`grep \" $user;\" $MVUSAGELOG | wc -l` $user"
done | sort -k1rn -k2 | paste - - -

#-- user count
echo
echo "`cat $MVUSAGELOG | cut -f2 -d';' | sort -u | wc -l` users in total"

#-- grep discarding training ids
echo "`cat $MVUSAGELOG | cut -f2 -d';' | sort -u | grep -v ' tr' | wc -l` when discarding training course ids"

if [ ! -f $MVCRASHLOG ]
then
  echo
  echo " >>> File $MVCRASHLOG not found!"
  echo
  exit
fi

echo
echo "Metview $VER crashes:("
echo "----------------------"

#-- print crashes per modules
#MODULES="`cat $MVCRASHLOG | cut -f3 -d: | cut -f4 -d' ' | sort -u | sed 's,;,,g' `"
MODULES="`cat $MVCRASHLOG | cut -f2 -d';' | sort -u | sed 's,;,,g' `"
for mod in $MODULES
do
  echo "`grep $mod $MVCRASHLOG | wc -l` for $mod"
done

#-- print total
echo
echo "`cat $MVCRASHLOG | wc -l` crashes in total"
