#!/bin/sh

set -e

umask 022

echo -n "Updating mozilla-thunderbird chrome registry..."

HOME=$(mktemp)
export HOME

chmod 600 $HOME

unset MOZILLA_FIVE_HOME || :
MOZILLA_FIVE_HOME=/usr/lib/mozilla-thunderbird
export MOZILLA_FIVE_HOME

# PATH
export PATH=/usr/lib/mozilla-thunderbird:$PATH

# added /usr/lib : don't load your local library
if test -z $LD_LIBRARY_PATH; then
  LD_LIBRARY_PATH=/usr/lib/mozilla-thunderbird:/usr/lib:${LD_LIBRARY_PATH}
else
  LD_LIBRARY_PATH=/usr/lib/mozilla-thunderbird:/usr/lib
fi
export LD_LIBRARY_PATH

/sbin/ldconfig

VARDIR=/var/lib/mozilla-thunderbird
LIBDIR=/usr/lib/mozilla-thunderbird
SHAREDIR=/usr/share/mozilla-thunderbird
DATADIR=${VARDIR}/chrome.d
EDATADIR=${VARDIR}/extensions.d

# cleaning VARDIR
rm -fr ${VARDIR}/chrome ${VARDIR}/components ${VARDIR}/extensions

# cleaning LIBDIR
rm -rf ${LIBDIR}/chrome/overlayinfo
rm -rf ${LIBDIR}/chrome/installed-chrome.txt
rm -f  ${LIBDIR}/chrome/*.rdf
rm -f  ${LIBDIR}/components/*.dat

# create VARDIR
install -d ${VARDIR}/chrome/overlayinfo
install -d ${VARDIR}/components

# create symlinks to LIBDIR
ln -sf ${VARDIR}/chrome/overlayinfo ${LIBDIR}/chrome/overlayinfo
ln -sf ${VARDIR}/chrome/installed-chrome.txt ${LIBDIR}/chrome/

# gen installed-chrome.txt
TMPFILE=`tempfile`
for f in `echo ${DATADIR}/* | sort`; do
    cat $f >> ${TMPFILE}
done

mv ${TMPFILE} ${VARDIR}/chrome/installed-chrome.txt
chmod 0644 ${VARDIR}/chrome/installed-chrome.txt

# reset $TMPFILE
true > $TMPFILE
# append all extension id files to the new installed-extensions.txt
for f in `find ${EDATADIR}/*.txt | sort`; do
    cat $f >> ${TMPFILE}
done

# move it to the processed extensions.txt file
mkdir -p ${VARDIR}/extensions/
mv ${TMPFILE} ${VARDIR}/extensions/installed-extensions-processed.txt
chmod 0644 ${VARDIR}/extensions/installed-extensions-processed.txt

# reset $TMPFILE --> build the Extensions.rdf
true > $TMPFILE

cat ${SHAREDIR}/parts/Extensions.rdf.head >> $TMPFILE

# append all extension id files to the new installed-extensions.txt
tmpdata=`find ${EDATADIR}/extension.* | sort 2>/dev/null`

if test -z "${tmpdata}"; then
  echo "no extension found ... installing zeroextensions.part to Extensions.rdf"
  cat ${SHAREDIR}/parts/zeroextensions.part >> $TMPFILE
fi

for f in ${tmpdata}; do
    cat $f >> ${TMPFILE}
done

# append all themes
tmpdata=`find ${EDATADIR}/theme.* | sort 2>/dev/null`

if test -z "${tmpdata}"; then
  echo "no themes found ... installing zerothemes.part to Extensions.rdf"
  cat ${SHAREDIR}/parts/zerothemes.part >> $TMPFILE
fi

for f in ${tmpdata}; do
    cat $f >> ${TMPFILE}
done

exts=`cat ${VARDIR}/extensions/installed-extensions-processed.txt | grep ^extension | sed 's/.*,\({.*}\)/\1/'`

for e in ${exts}; do
   echo '<RDF:Seq RDF:about="urn:mozilla:extension:root">' >> ${TMPFILE}
   echo '  <RDF:li RDF:resource="urn:mozilla:extension:'${e}'"/>' >> ${TMPFILE}
   echo '</RDF:Seq>' >> ${TMPFILE}
done

themes=`cat ${VARDIR}/extensions/installed-extensions-processed.txt | grep ^theme | sed 's/.*,\({.*}\)/\1/'`

for t in "${themes}"; do
   echo '<RDF:Seq RDF:about="urn:mozilla:theme:root">' >> ${TMPFILE}
   echo '  <RDF:li RDF:resource="urn:mozilla:theme:'${t}'"/>' >> ${TMPFILE}
   echo '</RDF:Seq>' >> ${TMPFILE}
done

cat ${SHAREDIR}/parts/Extensions.rdf.tail >> $TMPFILE

mv ${TMPFILE} ${VARDIR}/extensions/Extensions.rdf

# gen
regxpcom >/dev/null 
regchrome >/dev/null

# move and link
mv ${LIBDIR}/components/*.dat ${VARDIR}/components/ || true
ln -fs ${VARDIR}/components/*.dat ${LIBDIR}/components/ 

mv ${LIBDIR}/chrome/*.rdf ${VARDIR}/chrome/ || true
ln -fs ${VARDIR}/chrome/*.rdf ${LIBDIR}/chrome/
#ln -fs ${VARDIR}/hooks.d/ ${LIBDIR}/hooks.d/

# done
echo done.
