#!/bin/sh
# 
# gendebug -- get debug from tftp server
#
# v 1.0, 12/30/2014 01:19:04
#
# Copyright (c) 2014 Fortinet, Inc. All rights reserved.
# Written by Andrew Wang <wywang@fortinet.com>
#

server=
fname=
user=
pass=
remote=


if [ $# -ne 1 ] && [ $# -ne 2 ] && [  $# -ne 4 ]; then
	echo "$0 <filename>"
	echo "$0 <tftp_server> <filename>"
	echo "$0 <ftp_server> <username> <password> <remote_file>"
	exit 1
fi

if [ $# -eq 1 ]; then
	fname=$1
elif [ $# -eq 2 ]; then
	server=$1
	fname=$2
else
	server=$1
	user=$2
	pass=$3
	fname=debugfs.zip
	remote=$4
fi


if [ ! -d /var/log ]; then
	exit 0;
fi

rm -Rf /var/log/debug/debug
rm -Rf /var/log/debug/bin
rm -Rf /var/log/debug/lib
rm -Rf /var/log/debug/usr

cd /var/log/debug

if [ -n "$server" ]; then
	if [ -f $fname ]; then
		rm $fname
	fi

	if [ $# -eq 2 ]; then
		tftp -gl $fname $server
	else
		ftpget -u$user -p$pass $server $fname $remote
	fi
fi

if [ ! -f $fname ]; then
	exit 0;
fi

busybox unzip $fname
mv /var/log/debug/debug/bin /var/log/debug
mv /var/log/debug/debug/lib /var/log/debug

rm -rf /lib/debug
ln -sfv /var/log/debug /lib/debug
ln -sfv /lib/debug /lib/debug/usr

if [ -n "$server" ]; then
	rm -Rf $fname
fi
rm -Rf /var/log/debug/debug

exit 0
