# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

# @ECLASS: common-lisp.eclass
# @MAINTAINER:
# Common Lisp project <common-lisp@gentoo.org>
# @AUTHOR: Matthew Kennedy <mkennedy@gentoo.org>
# @BLURB: eclass for installing Common Lisp packages.
# @DESCRIPTION:
# This eclass supports the common-lisp-controller installation of many
# Common Lisp libraries

inherit common-lisp-common

CLPACKAGE=
DEPEND="dev-lisp/common-lisp-controller"

EXPORT_FUNCTIONS pkg_preinst pkg_postinst pkg_postrm

common-lisp_pkg_postinst() {
	if [ -z "${CLPACKAGE}" ]; then
		die "CLPACKAGE was empty or undefined upon call to pkg_prerm"
	else
		for package in ${CLPACKAGE}; do
			einfo "Registering Common Lisp source for ${package}"
			register-common-lisp-source ${package}
		done
	fi
}

common-lisp_pkg_postrm() {
	if [ -z "${CLPACKAGE}" ]; then
		die "CLPACKAGE was empty or undefined upon call to pkg_prerm"
	else
		for package in ${CLPACKAGE}; do
			if [ ! -d ${CLSOURCEROOT}/${package} ]; then
				einfo "Unregistering Common Lisp source for ${package}"
#				rm -rf ${CLFASLROOT}/*/${package}
				unregister-common-lisp-source ${package}
			fi
		done
	fi
}

#
# In pkg_preinst, we remove the FASL files for the previous version of
# the source.
#
common-lisp_pkg_preinst() {
	if [ -z "${CLPACKAGE}" ]; then
		die "CLPACKAGE was empty or undefined upon call to pkg_preinst"
	else
		for package in ${CLPACKAGE}; do
			einfo "Removing FASL files for previous version of Common Lisp package ${package}"
			rm -rf ${CLFASLROOT}/*/${package} || true
		done
	fi
}

common-lisp-install() {
	insinto ${CLSOURCEROOT}/${CLPACKAGE}
	doins $@
}

common-lisp-system-symlink() {
	dodir ${CLSYSTEMROOT}/`dirname ${CLPACKAGE}`
	if [ $# -eq 0 ]; then
		dosym ${CLSOURCEROOT}/${CLPACKAGE}/${CLPACKAGE}.asd \
			${CLSYSTEMROOT}/${CLPACKAGE}.asd
	else
		for package in "$@" ; do
			dosym ${CLSOURCEROOT}/$CLPACKAGE/${package}.asd \
				${CLSYSTEMROOT}/${package}.asd
		done
	fi
}

# Local Variables: ***
# mode: shell-script ***
# tab-width: 4 ***
# End: ***