#!/bin/sh
#
# chkconfig: 345 11 89
# description: Enable Fuduntu tweaks
#
### BEGIN INIT INFO
# Short-Description: Watches and enables Fuduntu Tweaks
# Description: Watches and enables Fuduntu Tweaks
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

start()
{
	if [ ! -d "/var/fuduntu" ]; then
          mkdir /var/fuduntu
        fi

        echo -n $"Checking and Applying Fuduntu tweaks:"

	### Apply TMP -> Ram Disk tweak if not found
	if [ ! "$(grep /tmp /etc/fstab)" ]; then
	  if [ ! -e "/var/fuduntu/ramdisk" ]; then
		  echo -n " RAMDISK"
		  /etc/init.d/rsyslog stop 2>/dev/null || true
		  echo "tmpfs /tmp     tmpfs defaults,noatime,mode=1777 0 0" >>/etc/fstab
		  echo "tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0" >>/etc/fstab
		  mv /tmp /tmp2 2>/dev/null || true
		  mkdir /tmp 2>/dev/null || true
		  mv /var/log /var/log2 2>/dev/null || true
		  mkdir /var/log 2>/dev/null || true
		  mount -a 2>/dev/null || true
		  rsync -av /tmp2/ /tmp >/dev/null 2>&1 || true
		  rsync -av /var/log2/ /var/log >/dev/null 2>&1 || true
		  rm -rf /tmp2 2>/dev/null || true
		  rm -rf /var/log2 2>/dev/null || true
		  /etc/init.d/rsyslog start 2>/dev/null || true

		  ### Alter logrotate to compensate for syslog changes
		  sed -i "s#weekly#daily#" /etc/logrotate.conf 2>/dev/null || true
		  sed -i "s#rotate 4#rotate 1#" /etc/logrotate.conf 2>/dev/null || true
		  sed -i "s#\#compress#compress#" /etc/logrotate.conf 2>/dev/null || true
		  touch /var/fuduntu/ramdisk
	  fi
	fi

	if [ -d "/usr/lib64" ]; then
          FLIB="lib64"
        else
          FLIB="lib"
        fi
	### Ensure Fuduntu is the system wide default homepage
	if [ "$(grep fedora /usr/$FLIB/firefox-3.6/browserconfig.properties)" ]; then
	  echo -n " FIREFOX"
	  sed -i "s#http://start.fedoraproject.org/#http://www.fuduntu.org#g" /usr/$FLIB/firefox-3.6/browserconfig.properties
	fi

	### Move Firefox cache to fast /tmp (50MB RAM max size per logged in user)
	if [ ! "$(grep browser.cache.disk.enable /usr/$FLIB/firefox-3.6/defaults/preferences/firefox.js 2>/dev/null)" ]; then
	  echo 'pref("browser.cache.disk.enable", true);' >> /usr/$FLIB/firefox-3.6/defaults/preferences/firefox.js
	fi
        if [ ! "$(grep browser.cache.disk.parent_directory /usr/$FLIB/firefox-3.6/defaults/preferences/firefox.js 2>/dev/null)" ]; then 
	  echo 'pref("browser.cache.disk.parent_directory", "/tmp");' >> /usr/$FLIB/firefox-3.6/defaults/preferences/firefox.js
	fi
        if [ ! "$(grep network.http.pipelining /usr/$FLIB/firefox-3.6/defaults/preferences/firefox.js 2>/dev/null)" ]; then
	  echo 'pref("network.http.pipelining", true);' >> /usr/$FLIB/firefox-3.6/defaults/preferences/firefox.js
	fi

	if [ ! -e "/var/fuduntu/acpi" ]; then
	  ## Append ACPI_OSI=Linux to GRUB
	  if [ ! "$(grep acpi_osi /boot/grub/menu.lst 2>/dev/null)" ]; then
	    echo -n " ACPI_OSI"
	    sed -i "s#rhgb quiet#rhgb quiet acpi_osi=\"Linux\"#" /boot/grub/menu.lst
	  fi

	  if [ ! "$(grep acpi_osi /etc/grub.conf 2>/dev/null)" ]; then
	    sed -i "s#rhgb quiet#rhgb quiet acpi_osi=\"Linux\"#" /etc/grub.conf
	  fi
	fi

        echo ""
        return 0
}

stop()
{
        return 0
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  *)
        echo "Usage: $0 {start|stop}"
        exit 3
        ;;
esac

exit $RETVAL

