From: Bertrand Jacquin <bertr...@jacquin.bzh>

When glob are defined in INSTALL_MASK, no output is given on what file
has been deleted.

The following patch provide more information to user about what is
actually removed.

Example:

  # INSTALL_MASK='*.h' emerge -va1t x11-proto/xproto
  ..
  >>> Installing (1 of 2) x11-proto/xproto-7.0.27::gentoo
   * Removing /usr/include/X11/Xproto.h
   * Removing /usr/include/X11/keysym.h
   * Removing /usr/include/X11/HPkeysym.h
   * Removing /usr/include/X11/Xthreads.h
   * Removing /usr/include/X11/Xalloca.h
   * Removing /usr/include/X11/Xwinsock.h
   * Removing /usr/include/X11/DECkeysym.h
   * Removing /usr/include/X11/XWDFile.h
   * Removing /usr/include/X11/Xos_r.h
   * Removing /usr/include/X11/XF86keysym.h
   * Removing /usr/include/X11/Xarch.h
   * Removing /usr/include/X11/Xfuncs.h
   * Removing /usr/include/X11/keysymdef.h
   * Removing /usr/include/X11/Xwindows.h
   * Removing /usr/include/X11/Xw32defs.h
   * Removing /usr/include/X11/Xdefs.h
   * Removing /usr/include/X11/Xprotostr.h
   * Removing /usr/include/X11/Xatom.h
   * Removing /usr/include/X11/Xpoll.h
   * Removing /usr/include/X11/Xos.h
   * Removing /usr/include/X11/ap_keysym.h
   * Removing /usr/include/X11/Xosdefs.h
   * Removing /usr/include/X11/Xmd.h
   * Removing /usr/include/X11/Sunkeysym.h
   * Removing /usr/include/X11/Xfuncproto.h
   * Removing /usr/include/X11/X.h
   * checking 1 files for package collisions
  >>> Merging x11-proto/xproto-7.0.27 to /

Signed-off-by: Bertrand Jacquin <bertr...@jacquin.bzh>
---
 bin/misc-functions.sh | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh
index 36a3bb8..a7c431c 100755
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@ -275,8 +275,12 @@ install_mask() {
                fi
 
                # we also need to handle globs (*.a, *.h, etc)
-               find "${root}" \( -path "${no_inst}" -or -name "${no_inst}" \) \
-                       -exec rm -fR {} \; >/dev/null 2>&1
+               find "${root}" \( -path "${no_inst}" -or -name "${no_inst}" \) 
2> /dev/null \
+               | while read; do
+                       __quiet_mode || einfo "Removing /${REPLY#${root}}"
+                       rm -Rf "${REPLY}" >&/dev/null
+               done
+
        done
        # set everything back the way we found it
        set +o noglob

Reply via email to