Install multiple firefox extensions

I’m a full time web developer now. Million thanks to Firefox, web development is made much much easier. To make the web development process easier, there are many many extensions.

A few of them I use for my development,

1. Firebug
2. Web Developer
3. ColorZilla
4. MeasureIt
5. ViewSourceChart
6. FireCookie
7. YSlow
8. Delicious.
9. Twitterfox
10. CSS Viewer

One problem I face when I have to work in a new machine or a new user account is installing these extensions. Not that I face this problem everyday, but this is something which is very irritating. One simple solution will be to backup the extensions folder and protect it safely, so that I can use it on any machine I use. Finally, I wrote a simple shell script which does this job.

#!/bin/bash
declare -a EXT LINK

#Let us populate the extension and the link for the extension here

EXT[0]=”ColorZilla”
EXT[1]=”Firebug”
EXT[2]=”WebDeveloper”
EXT[3]=”MeasureIt”
EXT[4]=”ViewSourceChart”
EXT[5]=”CSSViewer”
EXT[6]=”FireCookie”
EXT[7]=”YSlow”
EXT[8]=”SenSEO”
EXT[9]=”Delicious”
EXT[10]=”Twitterfox”

LINK[0]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/271/addon-271-latest.xpi”
LINK[1]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/1843/addon-1843-latest.xpi”
LINK[2]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/60/addon-60-latest.xpi”
LINK[3]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/539/addon-539-latest.xpi”
LINK[4]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/655/addon-655-latest.xpi”
LINK[5]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/2104/addon-2104-latest.xpi”
LINK[6]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/6683/addon-6683-latest.xpi”
LINK[7]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/5369/addon-5369-latest.xpi”
LINK[8]=”https://addons.mozilla.org/en-US/firefox/downloads/file/57302/senseo-0.8.9-fx.xpi”
LINK[9]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/3615/addon-3615-latest.xpi”
LINK[10]=”https://addons.mozilla.org/en-US/firefox/downloads/latest/5081/addon-5081-latest.xpi”

if [ ! -d “/tmp/firefoxext-$USER/” ]
then
    echo “Creating directory in tmp”
    mkdir -p “/tmp/firefoxext-$USER/”
fi

i=0
count=${#EXT[@]}
while [ “$i” -lt “$count” ]
do
    echo “Installing ${EXT[i]}”
    filename=`echo ${LINK[i]} | awk -F “/” ‘{print $NF}’`;
    rm -rf “/tmp/firefoxext-$USER/tmp”
    mkdir -p “/tmp/firefoxext-$USER/tmp”
    
    if [ ! -f “/tmp/firefoxext-$USER/$filename” ]
    then
        echo “Downloading $filename”
        wget –quiet -O “/tmp/firefoxext-$USER/$filename” ${LINK[i]}
    fi
    
    unzip -qq -d “/tmp/firefoxext-$USER/tmp” “/tmp/firefoxext-$USER/$filename”
    fffolder=`cat “/tmp/firefoxext-$USER/tmp/install.rdf” | grep “em:id” | head -n 1 | awk -F “>” ‘{print $2}’ | awk -F “<” ‘{print $1}’`

    if [ -z $fffolder ]
    then
        i=`echo $i+1 | bc`;    
        continue;
    fi
    
    for j in `ls -1 “$HOME/.mozilla/firefox”`
    do
        if [ -d “$HOME/.mozilla/firefox/$j” ]
        then
            rm -rf “$HOME/.mozilla/firefox/$j/extensions/$fffolder”    
            mkdir -p “$HOME/.mozilla/firefox/$j/extensions/$fffolder”
            cp -r “/tmp/firefoxext-$USER/tmp/”* “$HOME/.mozilla/firefox/$j/extensions/$fffolder”
        fi
    done
    i=`echo $i+1 | bc`;
done

You can download the latest version of this script from here.

Logic : Download the xpi file. Unzip it. Copy it to extensions folder.

Disclaimer: Download and run the above script at your own risk. I have tested it with many cases. Worst case, this will remove all your extensions from all your profiles (OMG) (Happened to me once). Also, I would advice you not to run this script in windows. I haven’t tested it there.

3 Comments

  1. satya

    I thought of writing one, but not able to. I never knew that adding latest to the extension name will give the link of the extension(but u will have problem with linux/windows compatibilty for the script). I tried to parse the addon page to get the link to latest version of the addon for corresponding OS and so on, which made things cumbersome and i left it.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.