commit:     445304115b838f90801f106420b2f71f8bff33ef
Author:     Patrice Clement <monsieurp <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 28 21:54:25 2017 +0000
Commit:     Patrice Clement <monsieurp <AT> gentoo <DOT> org>
CommitDate: Sat Oct 28 22:42:54 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44530411

vim-plugin.eclass: rework unwanted files and directories cleanup logic.

Courtesy of Arfrever.

Closes: https://bugs.gentoo.org/635420

 eclass/vim-plugin.eclass | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/eclass/vim-plugin.eclass b/eclass/vim-plugin.eclass
index e6aaae48283..abe9c7b3661 100644
--- a/eclass/vim-plugin.eclass
+++ b/eclass/vim-plugin.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: vim-plugin.eclass
@@ -11,7 +11,7 @@
 # which is read automatically by vim.  The only exception is
 # documentation, for which we make a special case via vim-doc.eclass.
 
-inherit vim-doc
+inherit estack vim-doc
 EXPORT_FUNCTIONS src_install pkg_postinst pkg_postrm
 
 VIM_PLUGIN_VIM_VERSION="${VIM_PLUGIN_VIM_VERSION:-7.3}"
@@ -48,11 +48,24 @@ vim-plugin_src_install() {
                eend $?
        fi
 
-       # Remove unwanted files that may exist
-       ebegin "Clean up unwanted files"
-       rm -f .[^.] .??* Makefile* || die "unwanted files cleanup failed"
+       # When globbing, if nothing exists, the shell literally returns the glob
+       # pattern. So turn on nullglob and extglob options to avoid this.
+       eshopts_push -s extglob
+       eshopts_push -s nullglob
+
+       ebegin "Cleaning up unwanted files and directories"
+       # We're looking for dotfiles, dotdirectories and Makefiles here.
+       local obj
+       eval "local matches=(@(.[^.]|.??*|Makefile*))"
+       for obj in "${matches[@]}"; do
+               rm -rv "${obj}" || die "cannot remove ${obj}"
+       done
        eend $?
 
+       # Turn those options back off.
+       eshopts_pop
+       eshopts_pop
+
        # Install non-vim-help-docs
        cd "${S}" || die "couldn't cd in ${S}"
        local f

Reply via email to