commit:     88c453b8bbe3c25a139c88705d9f462ac78ae88a
Author:     Thomas Bracht Laumann Jespersen <t <AT> laumann <DOT> xyz>
AuthorDate: Wed Apr  6 09:10:34 2022 +0000
Commit:     Patrice Clement <monsieurp <AT> gentoo <DOT> org>
CommitDate: Mon May 30 12:57:01 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88c453b8

vim-plugin.eclass: support EAPI 8

 * Drop EAPI 0, 1, 2 workarounds
 * Move EXPORT_FUNCTIONS to end of file
 * Add required @USAGE on functions
 * Add _VIM_PLUGIN_ECLASS guard

Bug: https://bugs.gentoo.org/830867
Bug: https://bugs.gentoo.org/830866
Signed-off-by: Thomas Bracht Laumann Jespersen <t <AT> laumann.xyz>
Signed-off-by: Anna Vyalkova <cyber+gentoo <AT> sysrq.in>
Signed-off-by: Patrice Clement <monsieurp <AT> gentoo.org>

 eclass/vim-plugin.eclass | 35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/eclass/vim-plugin.eclass b/eclass/vim-plugin.eclass
index 50e727e98f4e..a457f3a037ae 100644
--- a/eclass/vim-plugin.eclass
+++ b/eclass/vim-plugin.eclass
@@ -1,10 +1,10 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: vim-plugin.eclass
 # @MAINTAINER:
 # [email protected]
-# @SUPPORTED_EAPIS: 6 7
+# @SUPPORTED_EAPIS: 6 7 8
 # @BLURB: used for installing vim plugins
 # @DESCRIPTION:
 # This eclass simplifies installation of app-vim plugins into
@@ -13,12 +13,13 @@
 # documentation, for which we make a special case via vim-doc.eclass.
 
 case ${EAPI} in
-       6|7);;
-       *) die "EAPI ${EAPI:-0} unsupported (too old)";;
+       6|7|8) ;;
+       *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
+if [[ ! ${_VIM_PLUGIN_ECLASS} ]]; then
+
 inherit vim-doc
-EXPORT_FUNCTIONS src_install pkg_postinst pkg_postrm
 
 VIM_PLUGIN_VIM_VERSION="${VIM_PLUGIN_VIM_VERSION:-7.3}"
 
@@ -32,14 +33,13 @@ fi
 SLOT="0"
 
 # @FUNCTION: vim-plugin_src_install
+# @USAGE:
 # @DESCRIPTION:
 # Overrides the default src_install phase. In order, this function:
 # * fixes file permission across all files in ${S}.
 # * installs help and documentation files.
 # * installs all files in "${ED}"/usr/share/vim/vimfiles.
 vim-plugin_src_install() {
-       has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}"
-
        # Install non-vim-help-docs
        einstalldocs
 
@@ -53,6 +53,7 @@ vim-plugin_src_install() {
 }
 
 # @FUNCTION: vim-plugin_pkg_postinst
+# @USAGE:
 # @DESCRIPTION:
 # Overrides the pkg_postinst phase for this eclass.
 # The following functions are called:
@@ -60,7 +61,7 @@ vim-plugin_src_install() {
 # * update_vim_afterscripts
 # * display_vim_plugin_help
 vim-plugin_pkg_postinst() {
-       update_vim_helptags             # from vim-doc
+       update_vim_helptags # from vim-doc
        update_vim_afterscripts # see below
        display_vim_plugin_help # see below
 }
@@ -71,8 +72,7 @@ vim-plugin_pkg_postinst() {
 # This function calls the update_vim_helptags and update_vim_afterscripts
 # functions and eventually removes a bunch of empty directories.
 vim-plugin_pkg_postrm() {
-       has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
-       update_vim_helptags             # from vim-doc
+       update_vim_helptags # from vim-doc
        update_vim_afterscripts # see below
 
        # Remove empty dirs; this allows
@@ -82,25 +82,24 @@ vim-plugin_pkg_postrm() {
 }
 
 # @FUNCTION: update_vim_afterscripts
+# @USAGE:
 # @DESCRIPTION:
 # Creates scripts in /usr/share/vim/vimfiles/after/*
 # comprised of the snippets in /usr/share/vim/vimfiles/after/*/*.d
 update_vim_afterscripts() {
-       has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}"
-       has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
        local d f afterdir="${EROOT}"/usr/share/vim/vimfiles/after
 
        # Nothing to do if the dir isn't there
-       [ -d "${afterdir}" ] || return 0
+       [[ -d "${afterdir}" ]] || return 0
 
-       einfo "Updating scripts in ${EPREFIX}/usr/share/vim/vimfiles/after"
+       einfo "Updating scripts in ${afterdir}"
        find "${afterdir}" -type d -name \*.vim.d | while read d; do
                echo '" Generated by update_vim_afterscripts' > "${d%.d}" || die
                find "${d}" -name \*.vim -type f -maxdepth 1 -print0 | sort -z 
| \
                        xargs -0 cat >> "${d%.d}" || die 
"update_vim_afterscripts failed"
        done
 
-       einfo "Removing dead scripts in ${EPREFIX}/usr/share/vim/vimfiles/after"
+       einfo "Removing dead scripts in ${afterdir}"
        find "${afterdir}" -type f -name \*.vim | \
        while read f; do
                [[ "$(head -n 1 ${f})" == '" Generated by 
update_vim_afterscripts' ]] \
@@ -115,6 +114,7 @@ update_vim_afterscripts() {
 }
 
 # @FUNCTION: display_vim_plugin_help
+# @USAGE:
 # @DESCRIPTION:
 # Displays a message with the plugin's help file if one is available. Uses the
 # VIM_PLUGIN_HELPFILES env var. If multiple help files are available, they
@@ -160,3 +160,8 @@ display_vim_plugin_help() {
                fi
        fi
 }
+
+_VIM_PLUGIN_ECLASS=1
+fi
+
+EXPORT_FUNCTIONS src_install pkg_postinst pkg_postrm

Reply via email to