]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installexamples
Typo. Closes: #653339
[debhelper.git] / dh_installexamples
index fae330124de49f9744db524bb8979b8fb703aeb7..a39aa59359e29c859b768eba6f42cc824e34a66d 100755 (executable)
@@ -11,20 +11,23 @@ use Debian::Debhelper::Dh_Lib;
 
 =head1 SYNOPSIS
 
 
 =head1 SYNOPSIS
 
-B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [S<I<file ...>>]
+B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<file> ...>]
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
-dh_installexamples is a debhelper program that is responsible for
-installing examples into usr/share/doc/package/examples in package
+B<dh_installexamples> is a debhelper program that is responsible for
+installing examples into F<usr/share/doc/package/examples> in package
 build directories.
 
 build directories.
 
-Any file names specified as parameters will be installed into the first
-package dh_installexamples is told to act on. By default, this is the first
-binary package in debian/control, but if you use -p, -i, or -a flags, it
-will be the first package specified by those flags.
+=head1 FILES
 
 
-Files named debian/package.examples can list other files to be installed.
+=over 4
+
+=item debian/I<package>.examples
+
+Lists example files or directories to be installed.
+
+=back
 
 =head1 OPTIONS
 
 
 =head1 OPTIONS
 
@@ -35,17 +38,22 @@ Files named debian/package.examples can list other files to be installed.
 Install any files specified by command line parameters in ALL packages
 acted on.
 
 Install any files specified by command line parameters in ALL packages
 acted on.
 
-=item I<file ...>
+=item B<-X>I<item>, B<--exclude=>I<item>
+
+Exclude files that contain I<item> anywhere in their filename from
+being installed.
+
+=item I<file> ...
 
 
-Install these files as examples into the first package acted on. (Or into
-all packages if -A is specified.)
+Install these files (or directories) as examples into the first package
+acted on. (Or into all packages if B<-A> is specified.)
 
 =back
 
 =head1 NOTES
 
 
 =back
 
 =head1 NOTES
 
-Note that dh_installexamples will happily copy entire directory hierarchies
-if you ask it to (it uses cp -a internally). If it is asked to install a
+Note that B<dh_installexamples> will happily copy entire directory hierarchies
+if you ask it to (similar to B<cp -a>). If it is asked to install a
 directory, it will install the complete contents of the directory.
 
 =cut
 directory, it will install the complete contents of the directory.
 
 =cut
@@ -53,6 +61,8 @@ directory, it will install the complete contents of the directory.
 init();
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
 init();
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
+       next if is_udeb($package);
+
        my $tmp=tmpdir($package);
        my $file=pkgfile($package,"examples");
        
        my $tmp=tmpdir($package);
        my $file=pkgfile($package,"examples");
        
@@ -65,19 +75,37 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
                push @examples, @ARGV;
        }
        if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
                push @examples, @ARGV;
        }
-
+       
        if (@examples) {
                if (! -d "$tmp/usr/share/doc/$package/examples") {
                        doit("install","-d","$tmp/usr/share/doc/$package/examples");
                }
                
        if (@examples) {
                if (! -d "$tmp/usr/share/doc/$package/examples") {
                        doit("install","-d","$tmp/usr/share/doc/$package/examples");
                }
                
-               doit("cp","-a",@examples,"$tmp/usr/share/doc/$package/examples");
+               my $exclude = '';
+               if ($dh{EXCLUDE_FIND}) {
+                       $exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)';
+               }
+               
+               foreach my $example (@examples) {
+                       next if excludefile($example);
+                       if (-d $example && $exclude) {
+                               my $basename = basename($example);
+                               my $dir = ($basename eq '.') ? $example : "$example/..";
+                               my $pwd=`pwd`;
+                               chomp $pwd;
+                               my $exclude2 = '-type f'.$exclude;
+                               complex_doit("cd '$dir' && find '$basename' -type f$exclude -exec cp --parents -dp {} $pwd/$tmp/usr/share/doc/$package/examples \\;");
+                       }
+                       else {
+                               doit("cp", "-a", $example, "$tmp/usr/share/doc/$package/examples");
+                       }
+               }
        }
 }
 
 =head1 SEE ALSO
 
        }
 }
 
 =head1 SEE ALSO
 
-L<debhelper(1)>
+L<debhelper(7)>
 
 This program is a part of debhelper.
 
 
 This program is a part of debhelper.