# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=2

inherit eutils mozextension

MY_PN="${PN/-bin}"
MY_PV="${PV/_alpha/a}"
MY_P="${MY_PN}-${MY_PV}"
REL_URI="http://ftp.mozilla.org/pub/mozilla.org/${MY_PN}/nightly/2011-08-06-03-07-40-mozilla-central-l10n"

DESCRIPTION="Firefox Web Browser"
SRC_URI="x86? ( ${REL_URI}/${MY_PN}-${MY_PV}.en-GB.linux-i686.tar.bz2 -> ${MY_P}.tar.bz2 )
amd64? ( ${REL_URI}/${MY_PN}-${MY_PV}.en-GB.linux-x86_64.tar.bz2 -> ${MY_P}_64.tar.bz2 )
${SRC_URI_LANG}"
HOMEPAGE="http://www.mozilla.com/firefox"

KEYWORDS="~amd64 ~x86"
SLOT="0"
LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 )"
IUSE="${IUSE}"

DEPEND="app-arch/unzip"
RDEPEND="dev-libs/dbus-glib
x11-libs/libXrender
x11-libs/libXt
x11-libs/libXmu
>=x11-libs/gtk+-2.2:2
>=media-libs/alsa-lib-1.0.16
!www-client/firefox"

S="${WORKDIR}/${MY_PN}"

linguas() {
	local LANG SLANG
	for LANG in ${LINGUAS}; do
		if has ${LANG} en en_US; then
			has en ${linguas} || linguas="${linguas:+"${linguas} "}en"
			continue
		elif has ${LANG} ${LANGS//-/_}; then
			has ${LANG//_/-} ${linguas} || linguas="${linguas:+"${linguas} "}${LANG//_/-}"
			continue
			elif [[ " ${LANGS} " == *" ${LANG}-"* ]]; then
			for X in ${LANGS}; do
				if [[ "${X}" == "${LANG}-"* ]] && \
					[[ " ${NOSHORTLANGS} " != *" ${X} "* ]]; then
					has ${X} ${linguas} || linguas="${linguas:+"${linguas} "}${X}"
					continue 2
				fi
			done
		fi
		ewarn "Sorry, but ${PN} does not support the ${LANG} LINGUA"
	done
}

src_unpack() {
	use x86 && unpack ${MY_P}.tar.bz2
	use amd64 && unpack ${MY_P}_64.tar.bz2

	linguas
	for X in ${linguas}; do
		[[ ${X} != "en" ]] && xpi_unpack "${MY_P}.${X}.xpi"
	done
	if [[ ${linguas} != "" && ${linguas} != "en" ]]; then
		einfo "Selected language packs (first will be default): ${linguas}"
	fi
}

src_install() {
	declare MOZILLA_FIVE_HOME=/opt/${MY_PN}

	dodir /opt/
	dodir /opt/bin
	mv "${S}" "${D}"/opt/

	linguas
	for X in ${linguas}; do
		[[ ${X} != "en" ]] && xpi_install "${WORKDIR}"/"${MY_P}.${X}"
	done

	local LANG=${linguas%% *}
	if [[ -n ${LANG} && ${LANG} != "en" ]]; then
		elog "Setting default locale to ${LANG}"
		echo "pref(\"general.useragent.locale\", \"${LANG}\");" > "${D}/firefox"/defaults/pref/${MY_PN}.js || \
			die "sed failed to change locale"
	fi

	dosym ${D}/opt/firefox/firefox /opt/bin/firefox
}