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/”
fii=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.
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.
I guess I can add linux/windows check by going a grep in the install.rdf. I’m still not too sure though. I’ll try it out and try to add a windows script too 🙂
Thanks! I was looking for a way to do this!