#! /bin/sh
#
# Copyright (c) 2001-2005 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# /etc/init.d/boot.cleanup
#
### BEGIN INIT INFO
# Provides:          boot.cleanup
# Required-Start:    boot.localfs
# Should-Start:      boot.quota
# Required-Stop:
# Default-Start:     B
# Default-Stop:
# Description:       do cleanup
### END INIT INFO

. /etc/rc.status
. /etc/sysconfig/cron

rc_reset

case "$1" in
  start)
	#
	# clean up
	#
	rm -f /var/lib/rpm/__db*
	rm -rf /tmp/screens /tmp/uscreens /var/run/screens /var/run/uscreens 2>/dev/null
	rm -f /tmp/.X*lock /var/spool/uucp/LCK* /fsck_corrected_errors 2>/dev/null
	if test -x /usr/bin/find -a -x /usr/bin/xargs ; then
	    find /tmp/ssh-* -type s -name "*agent*" -maxdepth 1 -print0 2>/dev/null | xargs -0 -r rm -f
	    find /var/run /var/lock -type f -print0 | xargs -0 -r rm -f 2>/dev/null
	else
	    # fallback for find if we get /usr from nfs
	    rec_rem() {
		for f in "$1"/*
		do
		test -L "$f" && continue
		test -f "$f" && rm -f "$f"
		test -d "$f" && rec_rem "$f"
		done
	    }
	    #
	    test -d /var/run && rec_rem /var/run
	    test -d /var/lock && rec_rem /var/lock
	fi
	: > /var/run/utmp
	chmod 664 /var/run/utmp
	chown root:tty /var/run/utmp
	# Restore a possibly dynamically modified /etc/resolv.conf
	if ls /etc/resolv.conf.saved.by.* &>/dev/null ; then
	    echo "Cleaning up using /sbin/modify_resolvconf:"
	    /sbin/modify_resolvconf cleanup
	    echo -e "$rc_done_up"
	fi
	# delete temp files
	# If $CLEAR_TMP_DIRS_AT_BOOTUP = yes, delete files in
	# $TMP_DIRS_TO_CLEAR, if $CLEAR_TMP_DIRS_AT_BOOTUP starts with a "/"
	# delete files in those dirs instead.
	CLEAR_DIRS="$TMP_DIRS_TO_CLEAR"
	if [ "${CLEAR_TMP_DIRS_AT_BOOTUP:0:1}" = "/" ]; then
	  CLEAR_DIRS="$CLEAR_TMP_DIRS_AT_BOOTUP"
	  CLEAR_TMP_DIRS_AT_BOOTUP=yes
	fi
	if test -x /usr/bin/find -a -x /usr/bin/xargs ; then
	    if test "$CLEAR_TMP_DIRS_AT_BOOTUP" = yes; then
		echo -n "Cleaning temporary directories $CLEAR_DIRS"
		for CURDIR in $CLEAR_DIRS ; do
		    find $CURDIR -maxdepth 1 -printf '%P\0' | ( cd $CURDIR ; xargs -0 rm -rf -- )
		done
		rc_status -v -r
	    fi
	fi
	for CURDIR in /tmp /tmp/.X11-unix /tmp/.ICE-unix \
		      /var/tmp /var/tmp/vi.recover /var/run/uscreens ; do
	    test -d $CURDIR || \
		mkdir $CURDIR && \
		chown root:root $CURDIR && \
		chmod 1777 $CURDIR
	done
	for CURDIR in /var/run/screens ; do
	    test -d $CURDIR || \
		mkdir $CURDIR && \
		chown root:root $CURDIR && \
		chmod 755 $CURDIR
	done
	
	#
	# there could be a new kernel version.  reinit /etc/psdevtab, to be sure.
	#
	rm -f /etc/psdevtab
	test -x /bin/ps && /bin/ps > /dev/null 2> /dev/null
	;;
    stop|restart)
        # skip / nothing to do
	;;
    status)
	rc_failed 4
	rc_status -v
	;;
    *)
	echo "Usage: $0 {start|stop|status|restart}"
	exit 1
	;;
esac

rc_exit
	
