#!/bin/bash destdir="/usr/lib/mozilla-firefox" FILE="$destdir/res/forms.css" BEGIN="/*** BEGIN EXTRA FIREFOX WIDGETS ***/" sed_BEGIN="$(echo "$BEGIN" | sed 's@\*@\\*@g')" END="/*** END EXTRA FIREFOX WIDGETS ***/" sed_END="$(echo "$END" | sed 's@\*@\\*@g')" install() { echo -e "\nWe are going to be installing the firefox widgets. This consists of widget images contained in the folder \"form-widgets\" as well as some code that will be added to your forms.css file in the firefox directory. ---------------------------------- Press enter to begin installation." read # Check if widgets have already been installed grep "$sed_BEGIN" "$FILE" &> /dev/null if [ "$?" = 0 ] ; then echo "The text \"$BEGIN\" was found in $FILE." echo "The CSS appears to have already been installed." css=true else css=false fi # If the widget images are already installed... if [ -d "$destdir/res/form-widgets" ] ; then widgets=true loop=true while [ "$loop" = true ] ; do loop=false echo "The directory "$destdir/res/form-widgets" already exists." echo "The widget images appear to be installed." echo "This directory will be overwritten in installation." echo -n "Do you wish to overwrite this folder? (y/n) " read widget_choice case "$widget_choice" in y | Y | yes | Yes | YES ) : ;; n | N | No | NO | no ) echo "Exiting installation." exit 1 ;; * ) echo "Unknown option!" loop=true ;; esac done else widgets=false echo "Installing the widget images" sudo cp -r form-widgets "$destdir"/res fi # Install the css if [ "$css" = false ] ; then # Create a backup if wanted loop=true while [ "$loop" = true ] ; do echo "We are about to overwrite $FILE." echo -n "Would you like to create a backup? (y/n) " loop=false read backup_choice case "$backup_choice" in y | Y | yes | Yes | YES ) echo "Creating backup $FILE.bak" #sudo cp "$FILE" "$FILE".bak ;; n | N | no | No | NO ) : ;; * ) echo "Unknown option!" loop=true ;; esac done echo "Appending forms-extra.css to forms.css" # append forms-extra.css to forms.css temp="$(cat forms-extra.css)" sudo echo "$temp" >> "$destdir"/res/forms.css fi echo "Firefox widgets installed successfully." } uninstall() { grep "$sed_BEGIN" "$FILE" &> /dev/null if [ "$?" = 0 ] ; then css=true else echo "Text \"$BEGIN\" not found in $FILE" echo "The CSS does not appear to be installed." css=false fi if [ -d "$destdir/res/form-widgets" ] ; then widgets=true else echo "The directory "$destdir/res/form-widgets" does not exist." echo "The widget images do not appear to be installed." widgets=false fi delete=false if [ "$css" = true ] ; then temp="$(cat "$FILE" | while read line; do if [ "$line" = "$BEGIN" ]; then delete=true fi if [ "$delete" = false ]; then echo "$line" fi if [ "$delete" = true ] ; then if [ "$line" = "$END" ] ; then delete=false fi fi done)" echo "Restoring "$FILE"" echo "$temp" > "$FILE" fi if [ "$widgets" = true ] ; then echo "Removing widget images." sudo rm -r "$destdir/res/form-widgets" fi if [ "$widgets" = false -a "$css" = false ] ; then echo "No actions taken. Firefox widgets are not installed." else echo "Firefox widgets successfully removed." fi } echo "1 ) Install Firefox Widgets" echo "2 ) Remove Firefox Widgets" echo -n "Select an Option: " loop=true while [ "$loop" = true ] ; do read option loop=false case "$option" in 1 ) install ;; 2 ) uninstall ;; * ) echo "Unknown Option!" loop=true ;; esac done