#!/bin/sh
# Filesystem Settings
# Joel Bryan Juliano <joelbryan.juliano@gmail.com>

set -u
 
 # Setup the variables

 export LD_LIBRARY_PATH=/usr/lib:/usr/lib/filesystem-settings${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}
 export SUPERUSER=/usr/bin/sudo
 export REPLACE=/usr/bin/rpl
 export GUI=/usr/lib/filesystem-settings/filesystem-gui
 export STREAMEDITOR=/usr/bin/sed
 
 DIALOG_ICON=/usr/share/icons/Tango/scalable/devices/gtk-harddisk.svg
 
 export DIALOG_WARNING="/usr/bin/zenity --warning --text"
 export DIALOG_INFO="/usr/bin/zenity --info"
 export DIALOG_PROGRESS="/usr/bin/zenity --window-icon $DIALOG_ICON --progress --pulsate --auto-close"
 
 
 SWITCH_ROOT () {
 
 IS_ROOT=$(exec /usr/bin/gksudo -u root -k -m \
 	 "The software requires permission to modify the system. Please enter the system password" \
	 /bin/echo "IS_ROOT")

 if [ ! -z "$IS_ROOT" ]; then 
 echo "SUDO Succesfull"; else
 echo "SUDO is not executed properly";
 fi
 
 if [ -z "$IS_ROOT" ]; then
 $DIALOG_WARNING 'You do not have necessary permission to change the system.';
  exit 0;
 fi

}
  
 # Function create entries.
 
 LAYOUT_FILESYSTEM_SIMPLE () {
 gconftool-2 --type string --set /desktop/gnome/interface/file_chooser_backend "gtk+";
 
# echo \
# "<?xml version=\"1.0\"?><directory><file name=\"System\"><keyword name=\"important\"/></file><file name=\"Libraries\"><keyword name=\"sales\"/></file><file name=\"Devices%20and%20Media\"><keyword name=\"system\"/></file><file name=\"Users%20and%20Groups\"><keyword name=\"people\"/></file></directory>" \
# > $HOME/.nautilus/metafiles/file:%2F%2F%2F.xml;
 
# echo \
# "<?xml version=\"1.0\"?><directory><file name=\"Backgrounds\"><keyword name=\"photos\"/></file><file name=\"Faces\"><keyword name=\"people\"/></file><file name=\"Fonts\"><keyword name=\"special\"/></file><file name=\"Icons\"><keyword name=\"pictures\"/></file><file name=\"Pixmaps\"><keyword name=\"generic\"/></file><file name=\"Sounds\"><keyword name=\"sound\"/></file><file name=\"Themes\"><keyword name=\"art\"/></file></directory>" \
# > $HOME/.nautilus/metafiles/file:%2F%2F%2FLibraries.xml;
 
# echo \
# "<?xml version=\"1.0\"?><directory><file name=\"Boot\"><keyword name=\"important\"/></file><file name=\"Configurations\"><keyword name=\"documents\"/></file><file name=\"Kernel\"><keyword name=\"system\"/></file><file name=\"Programs\"><keyword name=\"package\"/></file><file name=\"Variables\"><keyword name=\"special\"/></file></directory>" \
# > $HOME/.nautilus/metafiles/file:%2F%2F%2FSystem.xml;
 
         if [ ! -e "/Media" ]; then
         $SUPERUSER ln -sf /media /Media
         fi
         
         if [ ! -e "/Home" ]; then
         $SUPERUSER ln -sf /home /Home
         fi
         
         if [ ! -e "/Programs" ]; then
         $SUPERUSER ln -sf /usr/share/applications /Programs
         echo "screensavers" > /tmp/.programs-hidden
         echo "kde" >> /tmp/.programs-hidden
         echo "defaults.list" >> /tmp/.programs-hidden
         echo "mimeinfo.cache" >> /tmp/.programs-hidden
         $SUPERUSER mv /tmp/.programs-hidden /Programs/.hidden
         fi

         if [ ! -e "/System" ]; then
         $SUPERUSER mkdir /System
         $SUPERUSER ln -sf /etc /System/Configurations
         $SUPERUSER ln -sf /usr /System/Programs
         $SUPERUSER ln -sf /proc /System/Kernel
         $SUPERUSER ln -sf /var /System/Variables
         $SUPERUSER ln -sf /boot /System/Boot
         $SUPERUSER ln -sf /dev /System/Devices
         fi
         
         if [ ! -e "/Libraries" ]; then
         $SUPERUSER mkdir /Libraries
         $SUPERUSER ln -sf /usr/share/pixmaps /Libraries/Pixmaps
         $SUPERUSER ln -sf /usr/share/themes /Libraries/Themes
         $SUPERUSER ln -sf /usr/share/pixmaps/faces /Libraries/Faces
         $SUPERUSER ln -sf /usr/share/icons /Libraries/Icons
         $SUPERUSER ln -sf /usr/share/backgrounds /Libraries/Backgrounds
         $SUPERUSER ln -sf /usr/share/sounds /Libraries/Sounds
         $SUPERUSER ln -sf /usr/share/fonts /Libraries/Fonts
         fi
         
         $SUPERUSER ln -sf /usr/share/applications/filesystem-settings.desktop "/Filesystem Settings.desktop"
         $SUPERUSER touch /.fs-layout-stamp
 
         ls / >> /tmp/.hidden
         yes | $REPLACE "Media" "" /tmp/.hidden
         yes | $REPLACE "Home" "" /tmp/.hidden
         yes | $REPLACE "Libraries" "" /tmp/.hidden
         yes | $REPLACE "System" "" /tmp/.hidden
         yes | $REPLACE "Programs" "" /tmp/.hidden
         yes | $REPLACE "Filesystem Settings.desktop" "" /tmp/.hidden
         
         $SUPERUSER mv /tmp/.hidden /
 }

 LAYOUT_FILESYSTEM_ADVANCE () {
 gconftool-2 --type string --set /desktop/gnome/interface/file_chooser_backend "gnome-vfs";
 
 $SUPERUSER rm -rf /.hidden
 $SUPERUSER rm -rf /.fs-layout-stamp
 $SUPERUSER rm -rf "/Media"
 $SUPERUSER rm -rf "/Libraries"
 $SUPERUSER rm -rf "/Home"
 $SUPERUSER rm -rf "/System"
 $SUPERUSER rm -rf "/Programs/.hidden"
 $SUPERUSER rm -rf "/Programs"
 $SUPERUSER rm -rf "/Filesystem Settings.desktop"
 }

 # Detect the current filesystem layout
 
 if [ -e /.fs-layout-stamp ]; then
 OPT_LAYOUT="SIMPLE";
 else
 OPT_LAYOUT="ADVANCE";
 fi
 
 $GUI $OPT_LAYOUT | (
 
 { read OPTIONS; }
 
 if [ "$OPTIONS" = "SIMPLE" ]; then
 SWITCH_ROOT;
 LAYOUT_FILESYSTEM_SIMPLE;
 $DIALOG_INFO --text "File System layout had been set to user-friendly mode."
 fi
 
 if [ "$OPTIONS" = "ADVANCE" ]; then
 SWITCH_ROOT;
 LAYOUT_FILESYSTEM_ADVANCE;
 $DIALOG_INFO --text "File System layout had been set to advance mode."
 fi
 
 )
