diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-01-11 13:48:10 -0500 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-01-11 13:48:10 -0500 |
commit | fcc792210d4e089a41b1c14ccca9f0a8a7e0f2ec (patch) | |
tree | 258f14c00bd903dcc5345e73240d3fa32ac32803 /dh_installdocs | |
parent | 7a31338038368a1ff845711c53d4b95395daa942 (diff) |
* dh_installdocs/examples: Don't unnecessarily use the exclude code path.
* Avoid infiinite recursion when told to install a directory ending with
"/." (slashdot effect?). Indeed, arbitrarily complex paths can be used
now, although there's really no point in using them. Closes: #253234
Diffstat (limited to 'dh_installdocs')
-rwxr-xr-x | dh_installdocs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/dh_installdocs b/dh_installdocs index e335df74..e8e6e3bc 100755 --- a/dh_installdocs +++ b/dh_installdocs @@ -8,6 +8,7 @@ dh_installdocs - install documentation into package build directories use strict; use Debian::Debhelper::Dh_Lib; +use Cwd q{abs_path}; =head1 SYNOPSIS @@ -121,7 +122,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { } if (@docs) { - my $exclude = '\\( -type f -or -type l \\)'; + my $exclude = ''; if ($dh{EXCLUDE_FIND}) { $exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)'; } @@ -133,10 +134,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) { next if excludefile($doc); next if -e $doc && ! -s $doc && ! compat(4); # ignore empty files if (-d $doc && length $exclude) { - my ($dir_basename) = basename($doc); - my $pwd=`pwd`; - chomp $pwd; - complex_doit("cd '$doc/..' && find '$dir_basename' $exclude -exec cp --parents -dp {} $pwd/$tmp/usr/share/doc/$package \\;"); + my ($dir_basename) = basename(abs_path($doc)); + my $pwd=`pwd`; + chomp $pwd; + $exclude='\\( -type f -or -type l \\)'.$exclude; + complex_doit("cd '$doc/..' && find '$dir_basename' $exclude -exec cp --parents -dp {} $pwd/$tmp/usr/share/doc/$package \\;"); } else { doit("cp", "-a", $doc, "$tmp/usr/share/doc/$package"); |