#!/bin/sh
# GNOME Desktop Optimizer (Metacity, GDM, MIME, icons, themes)
# Copyright 2006 Joel Bryan T. Juliano <joelbryan.juliano@gmail.com>
# GNU Public License

themes_dir="/usr/share/themes"
icons_dir="/usr/share/icons"
gdm_dir="/usr/share/gdm"
pixmaps_dir="/usr/share/pixmaps"
mime_dir="/usr/share/mime"

themes_action="`find $themes_dir -type f -exec file '{}' \; | grep "XML document text"`"
icons_action="`find $icons_dir -type f -exec file '{}' \; | grep "XML document text"`"
gdm_action="`find $gdm_dir -type f -exec file '{}' \; | grep "XML document text"`"
pixmaps_action="`find $pixmaps_dir -type f -exec file '{}' \; | grep "XML document text"`"
mime_action="`find $mime_dir -type f -exec file '{}' \; | grep "XML document text"`"

file_list_themes="`echo $themes_action | sed 's/: XML document text//g'`"
file_list_icons="`echo $icons_action | sed 's/: XML document text//g'`"
file_list_gdm="`echo $gdm_action | sed 's/: XML document text//g'`"
file_list_pixmaps="`echo $pixmaps_action | sed 's/: XML document text//g'`"
file_list_mime="`echo $mime_action | sed 's/: XML document text//g'`"

themes_directories="`find $themes_dir -type d`"
icons_directories="`find $icons_dir -type d`"
gdm_directories="`find $gdm_dir -type d`"
pixmaps_directories="`find $pixmaps_dir -type d`"
mime_directories="`find $mime_dir -type d`"

tmpdir="/tmp"
tmp_suffix="_tmp"

for a in $themes_directories
do
mkdir -p "$tmpdir$a"
done

for b in $icons_directories
do
mkdir -p "$tmpdir$b"
done

for c in $gdm_directories
do
mkdir -p "$tmpdir$c"
done

for d in $pixmaps_directories
do
mkdir -p "$tmpdir$d"
done

for e in $mime_directories
do
mkdir -p "$tmpdir$e"
done

counter=0
rounds=2

while [ $counter -ne $rounds ]
	do

		for f in $file_list_themes
		do
		cat $f | sed -e '/^[ \t]*$/d;s,^[ \t]*,,;s,>[ \t]*<,><,g;s,[ \t]*$,,' > "$tmpdir$f$tmp_suffix"
		cat "$tmpdir$f$tmp_suffix" | tr '\012' ' ' > "$tmpdir$f"  2> /dev/null
		sudo cp "$tmpdir$f" "$f" 2> /dev/null
		rm -rf "$tmpdir$f$tmp_suffix"
		done

		for g in $file_list_icons
		do
		cat $g | sed -e '/^[ \t]*$/d;s,^[ \t]*,,;s,>[ \t]*<,><,g;s,[ \t]*$,,' > "$tmpdir$g$tmp_suffix"
		cat "$tmpdir$g$tmp_suffix" | tr '\012' ' ' > "$tmpdir$g"  2> /dev/null
		sudo cp "$tmpdir$g" "$g" 2> /dev/null
		rm -rf "$tmpdir$g$tmp_suffix"
		done

		for h in $file_list_gdm
		do
		cat $h | sed -e '/^[ \t]*$/d;s,^[ \t]*,,;s,>[ \t]*<,><,g;s,[ \t]*$,,' > "$tmpdir$h$tmp_suffix"
		cat "$tmpdir$h$tmp_suffix" | tr '\012' ' ' > "$tmpdir$h"  2> /dev/null
		sudo cp "$tmpdir$h" "$h" 2> /dev/null
		rm -rf "$tmpdir$h$tmp_suffix"
		done

		for i in $file_list_pixmaps
		do
		cat $i | sed -e '/^[ \t]*$/d;s,^[ \t]*,,;s,>[ \t]*<,><,g;s,[ \t]*$,,' > "$tmpdir$i$tmp_suffix"
		cat "$tmpdir$i$tmp_suffix" | tr '\012' ' ' > "$tmpdir$i"  2> /dev/null
		sudo cp "$tmpdir$i" "$i" 2> /dev/null
		rm -rf "$tmpdir$i$tmp_suffix"
		done

		for j in $file_list_mime
		do
		cat $j | sed -e '/^[ \t]*$/d;s,^[ \t]*,,;s,>[ \t]*<,><,g;s,[ \t]*$,,' > "$tmpdir$j$tmp_suffix"
		cat "$tmpdir$j$tmp_suffix" | tr '\012' ' ' > "$tmpdir$j"  2> /dev/null
		sudo cp "$tmpdir$j" "$j" 2> /dev/null
		rm -rf "$tmpdir$j$tmp_suffix"
		done

		counter=$(( $counter + 1 ))
	done
