1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
#!/usr/bin/perl
=head1 NAME
dh_installdirs - create subdirectories in package build directories
=cut
use strict;
use warnings;
use Debian::Debhelper::Dh_Lib;
our $VERSION = DH_BUILTIN_VERSION;
=head1 SYNOPSIS
B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] [B<--create-in-sourcedir>] [S<I<dir> ...>]
=head1 DESCRIPTION
B<dh_installdirs> is a debhelper program that is responsible for creating
subdirectories in package build directories.
Many packages can get away with omitting the call to B<dh_installdirs>
completely. Notably, other B<dh_*> commands are expected to create
directories as needed.
=head1 FILES
=over 4
=item debian/I<package>.dirs
Lists directories to be created in I<package>.
Generally, there is no need to list directories created by the
upstream build system or directories needed by other B<debhelper>
commands.
Supports substitution variables in compat 13 and later as
documented in L<debhelper(7)>.
=back
=head1 OPTIONS
=over 4
=item B<-A>, B<--all>
Create any directories specified by command line parameters in ALL packages
acted on, not just the first.
=item B<--create-in-sourcedir>, B<--no-create-in-sourcedir>
Whether to create the specified directories in the source directory
(usually F<debian/tmp>) I<in addition to> in the package build directory
(usually F<< debian/I<package> >>).
The default is B<--no-create-in-sourcedir>.
=item B<--sourcedir=>I<dir>
Consider I<dir> the source directory for the packages acted on instead
of the default (which is usually F<debian/tmp>).
Please note that this option is dependent on the
B<--create-in-sourcedir> option (when B<--no-create-in-sourcedir> is
in effect, this option does nothing in B<dh_installdirs>).
=item I<dir> ...
Create these directories in the package build directory of the first
package acted on. (Or in all packages if B<-A> is specified.)
=back
=cut
my $create_in_sourcedir = 0;
init(options => {
'sourcedir=s' => \$dh{SOURCEDIR},
'create-in-sourcedir!' => \$create_in_sourcedir,
});
# PROMISE: DH NOOP WITHOUT dirs cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
my $file = pkgfile(
{
'named' => 0,
'support-architecture-restriction' => 0,
},
$package,
"dirs",
);
my $srcdir = $dh{SOURCEDIR} // default_sourcedir($package);
install_dir($tmp) if compat(10);
my @dirs;
if ($file) {
@dirs=filearray($file)
}
if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
push @dirs, @ARGV;
}
if (@dirs) {
# Stick the $tmp onto the front of all the dirs.
# This is necessary, for 2 reasons, one to make them
# be in the right directory, but more importantly, it
# protects against the danger of absolute dirs being
# specified.
my @make_dirs;
push(@make_dirs, map {
my $dir = "$tmp/$_";
$dir =~ tr:/:/:s; # just beautification.
$dir;
} @dirs);
if ($create_in_sourcedir) {
push(@make_dirs, map {
my $dir = "${srcdir}/$_";
$dir =~ tr:/:/:s; # just beautification.
$dir;
} @dirs);
}
# Create dirs.
install_dir(@make_dirs);
}
}
=head1 SEE ALSO
L<debhelper(7)>
This program is a part of debhelper.
=head1 AUTHOR
Joey Hess <joeyh@debian.org>
=cut
|