# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-shells/autojump/autojump-21.6.9.ebuild,v 1.2 2013/09/05 19:44:43 mgorny Exp $

EAPI=5

PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} )

inherit python-r1 python-utils-r1 vcs-snapshot

DESCRIPTION="change directory command that learns"
HOMEPAGE="http://github.com/joelthelion/autojump"
SRC_URI="https://github.com/joelthelion/${PN}/archive/release-v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="*"
IUSE="bash-completion python test zsh-completion"

RDEPEND="bash-completion? ( >=app-shells/bash-4 )
	python? ( ${PYTHON_DEPS} )
	zsh-completion? ( app-shells/zsh app-shells/zsh-completion )"
DEPEND="test? ( ${PYTHON_DEPS} )"

src_prepare() {
	sed -e "s: \(/etc/profile.d\): \"${EPREFIX}\1\":" \
		-i bin/autojump.sh || die
}

src_compile() {
	true
}

src_install() {
	dobin bin/autojump

	insinto /etc/profile.d
	doins bin/${PN}.sh

	if use bash-completion ; then
		doins bin/${PN}.bash
	fi

	if use zsh-completion ; then
		doins bin/${PN}.zsh
		insinto /usr/share/zsh/site-functions
		doins bin/_j
	fi

	if use python ; then
		python_foreach_impl python_domodule tools/autojump_ipython.py

		einfo "This tool provides \"j\" for ipython, please add"
		einfo "\"import autojump_ipython\" to your ipy_user_conf.py."
	fi

	doman docs/${PN}.1
	dodoc README.md
}
