| 1 |
# Copyright 1999-2011 Gentoo Foundation
|
| 2 |
# Distributed under the terms of the GNU General Public License v2
|
| 3 |
# $Header: /var/cvsroot/gentoo-x86/eclass/mozextension.eclass,v 1.6 2011/10/31 12:28:14 anarchy Exp $
|
| 4 |
#
|
| 5 |
# @ECLASS: mozextension.eclass
|
| 6 |
# @MAINTAINER:
|
| 7 |
# Mozilla team <mozilla@gentoo.org>
|
| 8 |
# @DESCRIPTION:
|
| 9 |
# Install extensions for use in mozilla products.
|
| 10 |
|
| 11 |
|
| 12 |
inherit eutils
|
| 13 |
|
| 14 |
DEPEND="app-arch/unzip"
|
| 15 |
|
| 16 |
xpi_unpack() {
|
| 17 |
local xpi xpiname srcdir
|
| 18 |
|
| 19 |
# Not gonna use ${A} as we are looking for a specific option being passed to function
|
| 20 |
# You must specify which xpi to use
|
| 21 |
[[ -z "$*" ]] && die "Nothing passed to the $FUNCNAME command. please pass which xpi to unpack"
|
| 22 |
|
| 23 |
for xpi in "$@"; do
|
| 24 |
einfo "Unpacking ${xpi} to ${PWD}"
|
| 25 |
xpiname=$(basename ${xpi%.*})
|
| 26 |
|
| 27 |
if [[ "${xpi:0:2}" != "./" ]] && [[ "${xpi:0:1}" != "/" ]] ; then
|
| 28 |
srcdir="${DISTDIR}/"
|
| 29 |
fi
|
| 30 |
|
| 31 |
[[ -s "${srcdir}${xpi}" ]] || die "${xpi} does not exist"
|
| 32 |
|
| 33 |
case "${xpi##*.}" in
|
| 34 |
ZIP|zip|jar|xpi)
|
| 35 |
mkdir "${WORKDIR}/${xpiname}" && \
|
| 36 |
unzip -qo "${srcdir}${xpi}" -d "${WORKDIR}/${xpiname}" || die "failed to unpack ${xpi}"
|
| 37 |
;;
|
| 38 |
*)
|
| 39 |
einfo "unpack ${xpi}: file format not recognized. Ignoring."
|
| 40 |
;;
|
| 41 |
esac
|
| 42 |
done
|
| 43 |
}
|
| 44 |
|
| 45 |
|
| 46 |
xpi_install() {
|
| 47 |
local emid
|
| 48 |
|
| 49 |
# You must tell xpi_install which xpi to use
|
| 50 |
[[ ${#} -ne 1 ]] && die "$FUNCNAME takes exactly one argument, please specify an xpi to unpack"
|
| 51 |
|
| 52 |
x="${1}"
|
| 53 |
cd ${x}
|
| 54 |
# determine id for extension
|
| 55 |
emid="$(sed -n -e '/install-manifest/,$ { /em:id/!d; s/.*[\">]\([^\"<>]*\)[\"<].*/\1/; p; q }' "${x}"/install.rdf)" \
|
| 56 |
|| die "failed to determine extension id"
|
| 57 |
insinto "${MOZILLA_FIVE_HOME}"/extensions/${emid}
|
| 58 |
doins -r "${x}"/* || die "failed to copy extension"
|
| 59 |
}
|