#!/bin/sh
#
#    Copyright (c) 2006 Brocade Communications Systems, Inc.
#    All rights reserved.
#
#    Description:
#
#        This pre-install script will be run before firmwarecommit.
#	 It validate the filesystem and remove some unneeded file
#	 before starting firmware commit.
#

PATH=/bin:/usr/bin:/sbin:/usr/sbin
SWBD=`sin | sed -n -e "s/^.\+\(SWBD[[:digit:]]\{1,\}\).\+$/\1/gp"`

STS_OK=0
ERR_VALIDATION=37			# FWDL_ERR_VALIDATION 0x25

validate_fs() {
	/bin/rpm -Va | /bin/grep -Ev "core_files|var|tmp|mnt|proc" | /bin/grep missing
}

#########################
# Main			#
#########################

echo "Validating the filesystem ..."
validate_fs
if [ $? == 0 ]; then
	exit $ERR_VALIDATION
fi

#
# truncate GLIBC copyback files
#
glibc_linuxthread_pkg=`rpm -qa | grep glibc-linuxthreads`
if [ "$glibc_linuxthread_pkg" != "" ]; then
    rpm -e "$glibc_linuxthread_pkg"
    if [ -f /var/images/$SWBD/plist ]; then
	/bin/cat /var/images/$SWBD/plist | /bin/grep -a -v "$glibc_linuxthread_pkg" > /var/images/$SWBD/.tmp_plist
	/bin/mv /var/images/$SWBD/.tmp_plist /var/images/$SWBD/plist
    fi 
    for glibccopybackfile in /var/glibc-linuxthreads/copyback/*
    do
	if [ -f $glibccopybackfile ]; then
	    > $glibccopybackfile
	fi
    done
    /bin/sync
fi

#
# remove unneeded files to free up space
# before firmwarecommit
#
/bin/rm -f /mnt/var/tracedump.dmp
/bin/rm -rf /mnt/core_files/*/*
/bin/rm -rf /mnt/lost+found/*

exit $STS_OK
