-#!/bin/sh -e
-#
-# Reads debian/dirs, creates the directories listed there there
-
-PATH=debian:$PATH:/usr/lib/debhelper
-. dh_lib
-
-for PACKAGE in $DH_DOPACKAGES; do
- TMP=`tmpdir $PACKAGE`
- EXT=`pkgext $PACKAGE`
-
- if [ ! -d $TMP/usr/doc/$PACKAGE ]; then
- doit "install -d $TMP/usr/doc/$PACKAGE"
- fi
-
- dirs=""
-
- if [ -e debian/${EXT}dirs ]; then
- dirs=`tr "\n" " " < debian/${EXT}dirs`
- fi
-
- if [ "$PACKAGE" = "$MAINPACKAGE" -a "$*" ]; then
- dirs="$* $dirs"
- fi
-
- if [ "$dirs" ]; then
- # Check to see if any of the dirs are absolute.
- for dir in "$dirs" ; do
- if expr "$dir" : "/" >/dev/null ; then
- error "Absolute directory name \"$dir\" specified."
- fi
- done
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installdirs - create subdirectories in package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir ...>>]
+
+=head1 DESCRIPTION
+
+dh_installdirs is a debhelper program that is responsible for creating
+subdirectories in package build directories.
+
+A file named debian/package.dirs can list directories to be created.
+
+Any directory names specified as parameters will be created in the package
+build directory of the first package dh_installdirs 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 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 I<dir ...>
+
+Create these directories in the package build directory of the first
+package acted on. (Or in all packages if -A is specified.)
+
+=back
+
+=cut
+
+init();
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"dirs");
+
+ if (! -e $tmp) {
+ doit("install","-d",$tmp);
+ }
+
+ 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.
+ @dirs=map {
+ $_="$tmp/$_";
+ tr:/:/:s; # just beautification.
+ $_
+ } @dirs;
+
# Create dirs.
- verbose_echo "cd $TMP && install -d $dirs && cd ../.."
- cd $TMP
- install -d $dirs
- cd ../..
- fi
-done
+ doit("install","-d",@dirs);
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut