mirror of
https://github.com/gentoo-mirror/guru.git
synced 2025-04-20 23:46:14 -04:00
mpv-plugin.eclass: new eclass
Signed-off-by: Nicola Smaniotto <smaniotto.nicola@gmail.com>
This commit is contained in:
parent
05aee9b8e5
commit
ce3b957642
128
eclass/mpv-plugin.eclass
Normal file
128
eclass/mpv-plugin.eclass
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
# Copyright 2022 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
# @ECLASS: mpv-plugin.eclass
|
||||||
|
# @MAINTAINER:
|
||||||
|
# Nicola Smaniotto <smaniotto.nicola@gmail.com>
|
||||||
|
# @AUTHOR:
|
||||||
|
# Nicola Smaniotto <smaniotto.nicola@gmail.com>
|
||||||
|
# @SUPPORTED_EAPIS: 8
|
||||||
|
# @BLURB: install mpv plugins
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# This eclass simplifies the installation of mpv plugins into system-wide
|
||||||
|
# directories. Also handles the mpv dependency and provides an USE flag
|
||||||
|
# for automatic loading of the plugin.
|
||||||
|
|
||||||
|
case ${EAPI:-0} in
|
||||||
|
8) ;;
|
||||||
|
*) die "${ECLASS}: EAPI ${EAPI:-0} unsupported."
|
||||||
|
esac
|
||||||
|
|
||||||
|
EXPORT_FUNCTIONS src_install pkg_postinst
|
||||||
|
|
||||||
|
# @ECLASS_VARIABLE: USE_MPV
|
||||||
|
# @DEFAULT_UNSET
|
||||||
|
# @PRE_INHERIT
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Controls adding media-video/mpv dependency. The allowed values are:
|
||||||
|
#
|
||||||
|
# - rdepend -- add it to RDEPEND
|
||||||
|
#
|
||||||
|
# - depend -- add it to DEPEND+RDEPEND with the binding slot operator (the
|
||||||
|
# default)
|
||||||
|
|
||||||
|
# @ECLASS_VARIABLE: MPV_REQ_USE
|
||||||
|
# @DEFAULT_UNSET
|
||||||
|
# @PRE_INHERIT
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# The list of USE flags required to be enabled on mpv, formed as a
|
||||||
|
# USE-dependency string.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# @CODE@
|
||||||
|
# MPV_REQ_USE="lua"
|
||||||
|
# @CODE@
|
||||||
|
|
||||||
|
if [[ ! ${_MPV_PLUGIN_ECLASS} ]]; then
|
||||||
|
|
||||||
|
# @FUNCTION: _mpv-plugin_set_globals
|
||||||
|
# @INTERNAL
|
||||||
|
# @USAGE:
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Sets all the global output variables provided by this eclass.
|
||||||
|
# This function must be called once, in global scope.
|
||||||
|
_mpv-plugin_set_globals() {
|
||||||
|
local MPV_PKG_DEP
|
||||||
|
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="+autoload"
|
||||||
|
|
||||||
|
MPV_PKG_DEP="media-video/mpv"
|
||||||
|
case ${USE_MPV:-depend} in
|
||||||
|
rdepend)
|
||||||
|
;;
|
||||||
|
depend)
|
||||||
|
MPV_PKG_DEP+=":="
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
die "Invalid USE_MPV=${USE_MPV}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ ${MPV_REQ_USE} ]; then
|
||||||
|
MPV_PKG_DEP+="[${MPV_REQ_USE}]"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RDEPEND="${MPV_PKG_DEP}"
|
||||||
|
if [[ ${USE_MPV} == depend ]]; then
|
||||||
|
DEPEND="${MPV_PKG_DEP}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
_mpv-plugin_set_globals
|
||||||
|
|
||||||
|
# @ECLASS_VARIABLE: MPV_PLUGIN_FILES
|
||||||
|
# @DEFAULT_UNSET
|
||||||
|
# @REQUIRED
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Array containing the list of files to be installed.
|
||||||
|
|
||||||
|
# @FUNCTION: mpv-plugin_src_install
|
||||||
|
# @USAGE:
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Install the specified files in ${D} and symlink them if the autoload flag is
|
||||||
|
# set.
|
||||||
|
# The ebuild must specify the file list in the MPV_PLUGIN_FILES array.
|
||||||
|
mpv-plugin_src_install() {
|
||||||
|
if [[ ! ${MPV_PLUGIN_FILES} ]]; then
|
||||||
|
die "${ECLASS}: no files specified in MPV_PLUGIN_FILES, cannot install"
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /usr/$(get_libdir)/mpv
|
||||||
|
for f in "${MPV_PLUGIN_FILES[@]}"; do
|
||||||
|
doins "${f}"
|
||||||
|
use autoload && dosym -r "/usr/$(get_libdir)/mpv/${f}" "/etc/mpv/scripts/${f}"
|
||||||
|
done
|
||||||
|
|
||||||
|
einstalldocs
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: mpv-plugin_pkg_postinst
|
||||||
|
# @USAGE:
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Warns the user of the existence of the autoload use flag.
|
||||||
|
mpv-plugin_pkg_postinst() {
|
||||||
|
if ! use autoload; then
|
||||||
|
elog
|
||||||
|
elog "The plugin has not been installed to /etc/mpv/scripts for autoloading."
|
||||||
|
elog "You have to activate it manually by passing"
|
||||||
|
for f in "${MPV_PLUGIN_FILES[@]}"; do
|
||||||
|
elog " \"${EPREFIX}/usr/$(get_libdir)/mpv/${f}\""
|
||||||
|
done
|
||||||
|
elog "as script option to mpv or symlinking the library to \"scripts/\" in your mpv"
|
||||||
|
elog "config directory."
|
||||||
|
elog "Alternatively, activate the autoload use flag."
|
||||||
|
elog
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_MPV_PLUGIN_ECLASS=1
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user