#!/bin/sh

source logs.shinc

source /app/etc/app.env
#lockfile= "/mnt/ramdisk/is.getmclocallogs"
#touch $lockfile
#echo "starting getmclocallogs"

ctlr=`/usr/bin/readslot`

msg "STATUS: Getting local Management Controller logs from $ctlr"


# =====================================================================
# rollLastFiles - rolls last.* files
# $1 - type (like "codeload")
# $2 - extension (like "progress")
# $3 - num
# $4 - ctlr
# =====================================================================
getLastFiles()
{
    type=$1
    ext=$2
    num=$3
    ctlr=$4
    for i in $(seq $num -1 1)
    do
        j=`expr $i - 1`
        if [ "$j" == "0" ]
        then
            j=""
        fi
        # echo "i=$i j=$j"
        prev="$ctlr/cfg/last${j}.${type}.${ext}"
        if [ -f "$prev" ]
        then
            zip -qu /mnt/ramdisk/logs.zip $prev
        fi
    done
}

rm -f /mnt/ramdisk/$ctlr
ln -s / /mnt/ramdisk/$ctlr

cd /mnt/ramdisk

/usr/bin/readslot > controller
zip -qu /mnt/ramdisk/logs.zip controller
rm controller

/usr/bin/getmcinfoheader > mcinfo
zip -qu /mnt/ramdisk/logs.zip $ctlr/mnt/ramdisk/mcinfo
rm mcinfo

ls $ctlr/cfg/log/active/*.* >/mnt/ramdisk/log.list
ls $ctlr/cfg/log/*.* >>/mnt/ramdisk/log.list
ls $ctlr/mem/log/*.* >>/mnt/ramdisk/log.list
sort -t / -k 5 /mnt/ramdisk/log.list >/mnt/ramdisk/log.list2
cat /mnt/ramdisk/log.list2 | zip -qu@ /mnt/ramdisk/logs.zip
rm /mnt/ramdisk/log.list
rm /mnt/ramdisk/log.list2


if [ -f $ctlr/cfg/pfu/pfu.log ]
then
    zip -qu /mnt/ramdisk/logs.zip $ctlr/cfg/pfu/pfu.log
fi

getLastFiles codeload progress 6 $ctlr
getLastFiles codeload debug 6 $ctlr

if [ -f $ctlr/cfg/cpld.log ]
then
    zip -qu /mnt/ramdisk/logs.zip $ctlr/cfg/cpld.log
fi

for file in $(find $ctlr/var/log/* -follow -type f)
do
    zip -qu /mnt/ramdisk/logs.zip $file
done

if [ -f $ctlr/mem/dhcp.log ]
then
    zip -qu /mnt/ramdisk/logs.zip $ctlr/mem/dhcp.log
fi
if [ -f $ctlr/cfg/self.healed ]
then
    zip -qu /mnt/ramdisk/logs.zip $ctlr/cfg/self.healed
fi
if [ -f $ctlr/mem/eth0stat ]
then
    zip -qu /mnt/ramdisk/logs.zip $ctlr/mem/eth0stat
fi
if [ -f $ctlr/mem/mc_post.out ]
then
    zip -qu /mnt/ramdisk/logs.zip $ctlr/mem/mc_post.out
fi
if [ "$(ls -A /cfg/watcher*.out)" ]
then
    zip -u -r /mnt/ramdisk/logs.zip $ctlr/cfg/watcher*.out
fi

if [ "$(ls -A $ctrl/log/os/sysd*.out)" ]
then
    zip -u -r /mnt/ramdisk/logs.zip $ctlr/log/os/sysd*.out
fi

if [ "$(ls -A $ctrl/log/os/preprestart.log*)" ]
then
    zip -u -r /mnt/ramdisk/logs.zip $ctlr/log/os/preprestart.log*
fi

rm -f /mnt/ramdisk/$ctlr
#rm -f $lockfile
msg "STATUS: Finished getting logs from local Management Controller."

exit 0

