From d827c6cf1631209f5042a9d1d8a7ecc24223c8a0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 23:06:40 +0200 Subject: Adding upstream version 13.11.4. Signed-off-by: Daniel Baumann --- dh_installdirs | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100755 dh_installdirs (limited to 'dh_installdirs') diff --git a/dh_installdirs b/dh_installdirs new file mode 100755 index 0000000..8d33b10 --- /dev/null +++ b/dh_installdirs @@ -0,0 +1,141 @@ +#!/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 [S>] [B<-A>] [B<--sourcedir=>I] [B<--create-in-sourcedir>] [S ...>] + +=head1 DESCRIPTION + +B 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 +completely. Notably, other B commands are expected to create +directories as needed. + +=head1 FILES + +=over 4 + +=item debian/I.dirs + +Lists directories to be created in I. + +Generally, there is no need to list directories created by the +upstream build system or directories needed by other B +commands. + +Supports substitution variables in compat 13 and later as +documented in L. + +=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) I in the package build directory +(usually F<< debian/I >>). + +The default is B<--no-create-in-sourcedir>. + +=item B<--sourcedir=>I + +Consider I the source directory for the packages acted on instead +of the default (which is usually F). + +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). + +=item I ... + +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($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 + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess + +=cut -- cgit v1.2.3