X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_installexamples;h=a39aa59359e29c859b768eba6f42cc824e34a66d;hb=fb8f18f4a98669c3b85e1bd7920fbabfc00b886e;hp=7aec26ebc3e471e750fc08fa839efe641b46ea93;hpb=938b66ee19e113785e6655b1c3e73e9003e6464c;p=debhelper.git diff --git a/dh_installexamples b/dh_installexamples index 7aec26e..a39aa59 100755 --- a/dh_installexamples +++ b/dh_installexamples @@ -1,21 +1,116 @@ -#!/bin/sh -e -# -# Reads debian/examples, installs all files listed there into -# /usr/doc/$PACKAGE/examples - -PATH=debian:$PATH:/usr/lib/debhelper -source dh_lib - -if [ -e debian/examples ]; then - examples=`cat debian/examples | tr "\n" " "` -fi - -if [ "$examples" -o $@ ]; then - if [ ! -d debian/tmp/usr/doc/$PACKAGE/examples ]; then - doit "install -d debian/tmp/usr/doc/$PACKAGE/examples" - fi - - for file in $examples $@; do - doit "cp -a $file debian/tmp/usr/doc/$PACKAGE/examples/" - done -fi +#!/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 + +B is a debhelper program that is responsible for +installing examples into F in package +build directories. + +=head1 FILES + +=over 4 + +=item debian/I.examples + +Lists example files or directories to be installed. + +=back + +=head1 OPTIONS + +=over 4 + +=item B<-A>, B<--all> + +Install any files specified by command line parameters in ALL packages +acted on. + +=item B<-X>I, B<--exclude=>I + +Exclude files that contain I anywhere in their filename from +being installed. + +=item I ... + +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 + +Note that B will happily copy entire directory hierarchies +if you ask it to (similar to B). If it is asked to install a +directory, it will install the complete contents of the directory. + +=cut + +init(); + +foreach my $package (@{$dh{DOPACKAGES}}) { + next if is_udeb($package); + + 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 $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 + +L + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess + +=cut