#!/bin/bash

get_compile_time () {

  debug_msg "get_compile_time ($@)"

  MOD="$1"
  VER="$(installed_version $MOD)"
  if [ -z "$VER" ] ; then
    message "$MOD is not installed"
    return 1
  fi

  LOG="/var/log/lunar/compile/$MOD-$VER.bz2"

  MARKS=`bzgrep "^++ Mark Compile st" $LOG 2>/dev/null | tr '\n' '\377'`

  if [[ "$(echo $MARKS | awk '{ print $2 $3 $4 }')" != "MarkCompilestart" ]]; then
    echo "Compile start mark missing from $MOD compile log."
    return 1
  elif [[ "$(echo $MARKS | awk '{ print $14 $15 $16 }')" != "MarkCompilestop" ]]; then
    echo "Compile stop mark missing from $MOD compile log."
    return 1
  fi

  START=`echo $MARKS | cut -d\" -f 6`
  STOP=`echo $MARKS | cut -d\" -f 12`

  SECONDS=$[$(date -d "$STOP" +%s) - $(date -d "$START" +%s)]

  DAY=0
  HRS=0
  MIN=0
  SEC=0

  if [ "$SECONDS" -ge "86400" ]; then
    DAY=$[$SECONDS / 86400]
    SECONDS=$[$SECONDS - $DAY * 86400]
  fi
  if [ "$SECONDS" -ge "3600" ]; then
    HRS=$[$SECONDS / 3600]
    SECONDS=$[$SECONDS - $HRS * 3600]
  fi
  if [ "$SECONDS" -ge "60" ]; then
    MIN=$[$SECONDS / 60]
    SECONDS=$[$SECONDS - $MIN * 60]
  fi
  if [ "$SECONDS" -ge "0" ]; then
    SEC=$SECONDS
    SECONDS=0
  fi

  CT="$MOD-$VER\t"

  if [ "$DAY" -gt "0" ]; then
    if [ "$DAY" -gt "1" ]; then
      CT="$CT $DAY days "
    else
      CT="$CT $DAY day "
    fi
  fi
  if [ "$HRS" -gt "0" ]; then
    if [ "$HRS" -gt "1" ]; then
      CT="$CT $HRS hours "
    else
      CT="$CT $HRS hour "
    fi
  fi
  if [ "$MIN" -gt "0" ]; then
    if [ "$MIN" -gt "1" ]; then
      CT="$CT $MIN minutes "
    else
      CT="$CT $MIN minute "
    fi
  fi
  if [ "$SEC" -gt "0" ]; then
    if [ "$SEC" -gt "1" ]; then
      CT="$CT $SEC seconds"
    else
      CT="$CT $SEC second"
    fi
  fi
  echo -e $CT
}

. /etc/lunar/config

for MOD in $@; do
  get_compile_time $MOD
done

