summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJory Pratt <anarchy@gentoo.org>2006-01-08 14:19:53 +0000
committerJory Pratt <anarchy@gentoo.org>2006-01-08 14:19:53 +0000
commitf13d0d9791ab3b782716b046613b4ea3fee9964a (patch)
tree742b8d788a9568c440cc33a123eea6410ed098c1 /eclass/mozextension.eclass
parentFixed fails with bash3.1, Bug 117982. (diff)
downloadgentoo-2-f13d0d9791ab3b782716b046613b4ea3fee9964a.tar.gz
gentoo-2-f13d0d9791ab3b782716b046613b4ea3fee9964a.tar.bz2
gentoo-2-f13d0d9791ab3b782716b046613b4ea3fee9964a.zip
mozextension, to be used with mozilla extensions
Diffstat (limited to 'eclass/mozextension.eclass')
-rw-r--r--eclass/mozextension.eclass54
1 files changed, 54 insertions, 0 deletions
diff --git a/eclass/mozextension.eclass b/eclass/mozextension.eclass
new file mode 100644
index 000000000000..234ac0adbf92
--- /dev/null
+++ b/eclass/mozextension.eclass
@@ -0,0 +1,54 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/mozextension.eclass,v 1.1 2006/01/08 14:19:53 anarchy Exp $
+#
+# mozextention.eclass: installing firefox extensions and language packs
+
+inherit eutils
+
+DEPEND="app-arch/unzip"
+
+xpi_unpack() {
+ local xpi xpiname srcdir
+
+ # Not gonna use ${A} as we are looking for a specific option being passed to function
+ # You must specify which xpi to use
+ [[ -z "$*" ]] && die "Nothing passed to the $FUNCNAME command. please pass which xpi to unpack"
+
+ for xpi in "$@"; do
+ einfo "Unpacking ${xpi} to ${PWD}"
+ xpiname=${xpi%.*}
+
+ if [[ "${xpi:0:2}" != "./" ]] ; then
+ srcdir="${DISTDIR}/"
+ fi
+
+ [[ -s "${srcdir}${xpi}" ]] || die "${xpi} does not exist"
+
+ case "${xpi##*.}" in
+ ZIP|zip|jar|xpi)
+ mkdir "${WORKDIR}/${xpiname}" && \
+ cd "${WORKDIR}/${xpiname}" && \
+ unzip -qo "${srcdir}${xpi}" || die "failed to unpack ${xpi}"
+ ;;
+ *)
+ einfo "unpack ${xpi}: file format not recognized. Ignoring."
+ ;;
+ esac
+ done
+}
+
+
+xpi_install() {
+ local emid
+
+ # You must tell xpi_install which xpi to use
+ [[ ${#} -ne 1 ]] && die "$FUNCNAME takes exactly one argument, please specify an xpi to unpack"
+
+ x="${1}"
+ cd ${x}
+ # determine id for extension
+ emid=$(sed -n -e '/<\?em:id>\?/!d; s/.*\([\"{].*[}\"]\).*/\1/; s/\"//g; p; q' ${x}/install.rdf) || die "failed to determine extension id"
+ insinto "${MOZILLA_FIVE_HOME}"/extensions/${emid}
+ doins -r "${x}"/* || die "failed to copy extension"
+}