# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/universalindentgui/universalindentgui-1.2.0-r1.ebuild,v 1.2 2013/03/02 21:07:26 hwoarang Exp $

EAPI=4
PYTHON_DEPEND="python? 2"
LANGS="de fr ja ru uk zh_TW"

inherit eutils python qt4-r2

DESCRIPTION="Cross platform GUI for several code formatters, beautifiers and indenters"
HOMEPAGE="http://universalindent.sourceforge.net/"
SRC_URI="mirror://sourceforge/universalindent/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="debug examples html perl php python ruby xml"

DEPEND="dev-qt/qtcore:4
	dev-qt/qtgui:4
	dev-qt/qtscript:4
	x11-libs/qscintilla
"
RDEPEND="${DEPEND}
	dev-util/astyle
	dev-util/bcpp
	dev-util/indent
	html? (
		app-text/htmltidy
		perl? ( dev-lang/perl )
	)
	perl? ( dev-perl/perltidy )
	php? ( dev-php/PEAR-PHP_Beautifier )
	ruby? ( dev-lang/ruby )
	xml? ( dev-util/xmlindent )
"

DOCS="CHANGELOG.txt readme.html"

pkg_setup() {
	if use python; then
		python_set_active_version 2
		python_pkg_setup
	fi
}

src_prepare() {
	# correct translation binaries
	sed -e "s/lupdate-qt4/lupdate/" \
		-e "s/lrelease-qt4/lrelease/" \
		-i UniversalIndentGUI.pro || die "sed pro translation binary"

	if use debug; then
		sed -i -e 's:release,:debug,:g' UniversalIndentGUI.pro || die
	fi

	# patch .pro file according to our use flags
	# basic support
	UEXAMPLES="cpp sh"
	local UINDENTERS="shellindent.awk"
	local UIGUIFILES="shellindent gnuindent bcpp astyle"

	if use html; then
		UEXAMPLES="${UEXAMPLES} html"
		UIGUIFILES="${UIGUIFILES} tidy"
		if use perl; then
			UINDENTERS="${UINDENTERS} hindent"
			UIGUIFILES="${UIGUIFILES} hindent"
		fi
	fi

	if use perl; then
		UEXAMPLES="${UEXAMPLES} pl"
		UIGUIFILES="${UIGUIFILES} perltidy"
	fi

	if use php; then
		UEXAMPLES="${UEXAMPLES} php"
		UINDENTERS="${UINDENTERS} phpStylist.php"
		UIGUIFILES="${UIGUIFILES} php_Beautifier phpStylist"
	fi

	if use python; then
		UEXAMPLES="${UEXAMPLES} py"
		UINDENTERS="${UINDENTERS} pindent.py"
		UIGUIFILES="${UIGUIFILES} pindent"
		python_convert_shebangs -r 2 .
	fi

	if use ruby; then
		UEXAMPLES="${UEXAMPLES} rb"
		UINDENTERS="${UINDENTERS} rbeautify.rb ruby_formatter.rb"
		UIGUIFILES="${UIGUIFILES} rbeautify rubyformatter"
	fi

	if use xml; then
		UEXAMPLES="${UEXAMPLES} xml"
		UIGUIFILES="${UIGUIFILES} xmlindent"
	fi

	local IFILES= I=
	for I in ${UINDENTERS}; do
		IFILES="${IFILES} indenters/${I}"
		chmod +x indenters/${I}
	done

	for I in ${UIGUIFILES}; do
		IFILES="${IFILES} indenters/uigui_${I}.ini"
	done

	# apply fixes in .pro file
	sed -i -e "/^unix:indenters.files +=/d" UniversalIndentGUI.pro ||
		die ".pro patching failed"
	sed -i -e "s:indenters/uigui_\*\.ini:${IFILES}:" UniversalIndentGUI.pro ||
		die ".pro patching failed"

	local lang
	for lang in ${LANGS}; do
		if ! use linguas_${lang}; then
			sed -e "/_${lang}.ts/d" -e "/_${lang}.qm/d" \
				-i UniversalIndentGUI.pro || die "failed while disabling ${lang}"
		fi
	done

	qt4-r2_src_prepare
}

src_install() {
	qt4-r2_src_install

	doman doc/${PN}.1.gz

	if use examples; then
		insinto /usr/share/doc/${PF}/examples
		local I
		for I in ${UEXAMPLES}; do
			doins indenters/example.${I}
		done
	fi

	newicon resources/universalIndentGUI_512x512.png ${PN}
	make_desktop_entry ${PN} UniversalIndentGUI ${PN} "Qt;Development"
}