#!/usr/bin/perl -w =head1 NAME dh_installexamples - install example files into package build directories =cut use strict; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B [S>] [B<-A>] [B<-X>I] [S>] =head1 DESCRIPTION dh_installexamples is a debhelper program that is responsible for installing examples into usr/share/doc/package/examples in package 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. Files named debian/package.examples can list other files to be installed. =head1 OPTIONS =over 4 =item B<-A>, B<--all> Install any files specified by command line parameters in ALL packages acted on. =item I Install these files as examples into the first package acted on. (Or into all packages if -A is specified.) =item B<-Xitem>, B<--exclude=item> Exclude files that contain "item" anywhere in their filename from being installed. =back =head1 NOTES Note that dh_installexamples will happily copy entire directory hierarchies if you ask it to (similar to cp -a). If it is asked to install a directory, it will install the complete contents of the directory. =cut init(); foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $file=pkgfile($package,"examples"); my @examples; if ($file) { @examples=filearray($file, "."); } 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"); } my $exclude = ''; if ($dh{EXCLUDE_FIND}) { $exclude = ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)'; } foreach my $example (@examples) { next if excludefile($example); if (-d $example && $exclude) { my ($dir_basename) = basename($example); # Pity there's no cp --exclude .. my $pwd=`pwd`; chomp $pwd; complex_doit("cd $example/.. && find $dir_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 L This program is a part of debhelper. =head1 AUTHOR Joey Hess =cut