Joey Hess <[EMAIL PROTECTED]> writes:

> Matej Vela wrote:
>> Good point.  This patch does everything in the first find:
>
> With the downside of running rm -rf on a much broader set of files.
> Could be risky.

The first subexpression won't catch directories due to "-type f", and
"rm -r" doesn't follow symlinks, so there shouldn't be any difference.
Just to be safe, we can handle files and directories separately:

--- debhelper-5.0.2.orig/dh_clean
+++ debhelper-5.0.2/dh_clean
@@ -87,20 +87,17 @@
        # See if some files that would normally be deleted are excluded.
        my $find_options='';
        if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
-               $find_options="-a ! \\( $dh{EXCLUDE_FIND} \\)";
+               $find_options="! \\( $dh{EXCLUDE_FIND} \\) -a";
        }
 
        # Remove other temp files.
-       complex_doit("find . -type f -a \\
+       complex_doit("find . $find_options \\( \\( -type f -a \\
                \\( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \\
                 -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \\
                 -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \\
                 -o -name TAGS -o -name core -o \\( -path '*/.deps/*' -a -name 
'*.P' \\) \\
-               \\) $find_options -exec rm -f {} \\;");
-
-       # Stupid autoconf cache directory.
-       doit("rm", "-rf", "autom4te.cache")
-               unless excludefile("autom4te.cache");
+               \\) -exec rm -f {} \\; \\) -o \\
+               \\( -type d -a -name autom4te.cache -prune -exec rm -rf {} \\; 
\\) \\)");
 }
 
 doit('rm', '-rf', 'debian/tmp') if -x 'debian/tmp' && ! compat(1) &&

Thanks,

Matej


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to