#!/bin/sh

PACKAGE_NAME=qbw-nemo-dockbar
###################################


remove_widget () {

#split .queen_beecon to three parts
# c_titles
# c_commands
# every other (without c_titles and c_commands)
grep c_titles /home/user/.queen_beecon > /home/user/.queen_beecon_temporary_titles
grep c_commands /home/user/.queen_beecon >  /home/user/.queen_beecon_temporary_commands
grep -v c_titles /home/user/.queen_beecon | grep -v c_commands > /home/user/.queen_beecon_temporary_file


#remove title and command from 'header'
sed -i 's|'"$NAME"';||' /home/user/.queen_beecon_temporary_titles

grep instanceCmd /opt/$PACKAGE_NAME/exported_widget  | tail -c +13 > /home/user/.queen_beecon_new_command
sed -i 's|\\|\\\\|g' /home/user/.queen_beecon_new_command
COMMAND=`cat /home/user/.queen_beecon_new_command`
sed -i 's|'"$COMMAND"';||' /home/user/.queen_beecon_temporary_commands


#merge rows back to one file
echo "
[config]
version=1" > /home/user/.queen_beecon_temporary_file2
cat /home/user/.queen_beecon_temporary_titles >> /home/user/.queen_beecon_temporary_file2
cat /home/user/.queen_beecon_temporary_commands >> /home/user/.queen_beecon_temporary_file2
echo "" >> /home/user/.queen_beecon_temporary_file2
tail -n +5 /home/user/.queen_beecon_temporary_file >> /home/user/.queen_beecon_temporary_file2


#Remove widget from the .config/hildon-desktop/home.plugins
#remove two subsequent rows 
#  [queen-beecon.desktop-NAME]
#  X-Desktop-File=/usr/share/applications/hildon-home/queen-beecon.desktop
sed -i ':a;N;$!ba;s|\[queen-beecon.desktop-'"$NAME"'\]\nX-Desktop-File=/usr/share/applications/hildon-home/queen-beecon.desktop||'  /home/user/.config/hildon-desktop/home.plugins


#Remove widget from the .queen_beecon
#We know the name of widget
#We guess the last option for widget is empty updOnDBUSMatchRule=
#
#*Because every widget contains that 'updOnDBUSMatchRule=' and sed is greedy, it will eat every widget after what we are looking for
#  -> solution: use perl -pe with .*? so it stops on first 'updOnDBUSMatchRule='
#
#*It is multiline file and we want it works on 'single-line mode', but for some reason it won't work
#  -> solution, change every linebreak to the FOORAB (foobar might be in use). do the thing. change every FOORAB back to linebreak
cat /home/user/.queen_beecon_temporary_file2 | sed ':a;N;$!ba;s/\n/FOORAB/g' | perl -pe 's/\[queen-beecon.desktop-'"$NAME"'\].*?updOnDBUSMatchRule=//' | sed 's/FOORAB/\n/g' > /home/user/.queen_beecon_temporary_file

#and now place it on real name
mv /home/user/.queen_beecon_temporary_file /home/user/.queen_beecon

#remove temp-files
rm /home/user/.queen_beecon_temporary_titles
rm /home/user/.queen_beecon_temporary_commands
rm /home/user/.queen_beecon_temporary_file2
}


#first desktop:
NAME=`grep instanceTitle /opt/$PACKAGE_NAME/exported_widget  | tail -c +15`
remove_widget


######################
#for another desktops:

#with gconf we ask list of desktops ('active'), it looks like this: [1,2,3,4,5]
#we drop [ and ] 
#we change every comma to the space
#so it looks like this 1 2 3 4 5
#then we drop '1', because first case is already handled
#now we have list for shell-for-loop
LIST="$(gconftool-2 -g /apps/osso/hildon-desktop/views/active | sed 's/\[//' | sed 's/\]//' | sed 's/,/ /g' | sed 's/1//')"
for desktop in $LIST; do
 #echo Removing widget also from the desktop $desktop;
 #add postfix to the NAME
 NAME=`grep instanceTitle /opt/$PACKAGE_NAME/exported_widget  | tail -c +15`$desktop

 #remove directory made by postinst
 rm -rf  /var/lib/gconf/apps/osso/hildon-desktop/applets/queen-beecon.desktop-$NAME

 remove_widget
done

#Issues: 
# *We guess that number of desktop is same than during installation of this package
#   -if there are now less -> some hidden widgets are not destroyed
#   -if there are now more -> script is run against non-existing files (and rows)

#Other desktops ready
#####################


#these should be owned by user
chown user /home/user/.config/hildon-desktop/home.plugins
chown user /home/user/.queen_beecon

exit 0
