summaryrefslogtreecommitdiff
path: root/dh_installdocs
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-01-11 13:48:10 -0500
committerJoey Hess <joey@kodama.kitenet.net>2008-01-11 13:48:10 -0500
commitfcc792210d4e089a41b1c14ccca9f0a8a7e0f2ec (patch)
tree258f14c00bd903dcc5345e73240d3fa32ac32803 /dh_installdocs
parent7a31338038368a1ff845711c53d4b95395daa942 (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-xdh_installdocs12
1 files changed, 7 insertions, 5 deletions
diff --git a/dh_installdocs b/dh_installdocs
index e335df7..e8e6e3b 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");