#!/bin/bash
#
# cron pour garder trace de la compta et des volumes de fichiers crees
# a executer chaque matin a 6h00
# ======================================================================
#. /etc/profile

# Default values
# ==============
fg_dry=false
fg_verbose=false

# Get arguments from command line
# ===============================
while getopts :hdv Opt ; do
  case $Opt in
    h)
      echo "usage: $0 [-d] [-v]"
      echo ""
      echo "options :"
      echo "  -h : print this help and exit"
      echo "  -d : dry run, no file produced"
      echo "  -v : verbose"
      exit 0 ;;
    d)
      fg_dry=true
      ;;
    v)
      fg_verbose=true
      ;;
    :)
      echo "$0: -"${OPTARG}" option: missing value"
      exit 1
      ;;
    \?)
      echo "$0: -"${OPTARG}" option: not supported"
      exit 1
      ;;
  esac
done
shift $(($OPTIND-1))


# Files and directories
# =====================
LOCAL_DIR="/ccc/cont003/home/dsm/p86ipsl/CCC_MYPROJECT/output"
SAVE_DIR="/ccc/work/cont003/dsm/p86ipsl/CCC_MYPROJECT/output"

if ( ${fg_dry} ) ; then
  OUT_LOGIN="/dev/stdout"
  OUT_TOTAL="/dev/stdout"
  OUT_STORE="/dev/stdout"
else
  OUT_LOGIN="${LOCAL_DIR}/OUT_CONSO_LOGIN"
  OUT_TOTAL="${LOCAL_DIR}/OUT_CONSO_ALL"
  OUT_STORE="${LOCAL_DIR}/OUT_CONSO_STORE"
fi

Today=$( date +%F )


# Produce files
# =============

# 1- Conso par login (HOME)
# -------------------------
# on garde la trace de chaque login, date en tete, en remplacant le fichier a chaque fois : OUT_CONSO_LOGIN
ccc_myproject | \
    sed -e'1,/gencmip6/d' | \
    sed -e'/Total/,$d' | \
    grep -v Login | \
    grep -v '^$' | \
    gawk -v Today=$Today '{printf "%10s %-10s %10.2f hours\n", Today, $1, $2}' \
    > ${OUT_LOGIN}

# 2- Conso total par jour
# -----------------------
# on garde le total, date en tete en accumulant dans le fichier : OUT_CONSO_ALL
ccc_myproject | \
    sed -e'1,/gencmip6/d' | \
    grep -m 1 Total | \
    gawk -v Today=$Today '{printf "%10s %-10s %10.2f hours\n", Today, "Total", $2}' \
    >> ${OUT_TOTAL}

# 3- volume cree sur STORE
# ------------------------
# par login qui a consomme, en remplacant le fichier a chaque fois : OUT_CONSO_STORE
for i in $( ccc_myproject | \
            sed -e'1,/gencmip6/d' | \
            sed -e'/Total/,$d' | \
            grep -v Login | \
            grep -v '^$/' | \
            grep -v 0.0 | \
            gawk '{print $1}' )
do
  printf "%-10s %6s %s\n" $i $( du -sbh $(ccc_home -A -u $i)/IGCM_OUT/IPSLCM6 )
done > ${OUT_STORE}


# Save files (WORK)
# =================
if ( ! ${fg_dry} ) ; then
  cp ${LOCAL_DIR}/OUT_CONSO_LOGIN ${SAVE_DIR}/OUT_CONSO_LOGIN_${Today}
  cp ${LOCAL_DIR}/OUT_CONSO_ALL   ${SAVE_DIR}/OUT_CONSO_ALL_${Today}
  cp ${LOCAL_DIR}/OUT_CONSO_STORE ${SAVE_DIR}/OUT_CONSO_STORE_${Today}
fi

