X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=dh_installdirs;h=2d12b76bab3435d1b3069f0bb5273884ab2afed8;hb=ebf6b046d1165c4ac3897545aa8e46c05a563658;hp=b5480851159da447ed817b449f5060c59c5ce91b;hpb=b5b83f0b397cf9403dc5a5fe9a2bfa17ffa006a8;p=debhelper.git diff --git a/dh_installdirs b/dh_installdirs index b548085..2d12b76 100755 --- a/dh_installdirs +++ b/dh_installdirs @@ -1,39 +1,42 @@ -#!/bin/sh -e +#!/usr/bin/perl -w # -# Reads debian/dirs, creates the directories listed there there +# Reads debian/dirs, creates the directories listed there -PATH=debian:$PATH:/usr/lib/debhelper -. dh_lib +BEGIN { push @INC, "debian", "/usr/lib/debhelper" } +use Dh_Lib; +init(); -for PACKAGE in $DH_DOPACKAGES; do - TMP=`tmpdir $PACKAGE` - EXT=`pkgext $PACKAGE` +foreach $PACKAGE (@{$dh{DOPACKAGES}}) { + $TMP=tmpdir($PACKAGE); + $file=pkgfile($PACKAGE,"dirs"); - if [ ! -d $TMP ]; then - doit "install -d $TMP" - fi + if (! -e $TMP) { + doit("install","-d",$TMP); + } - dirs="" + undef @dirs; - if [ -e debian/${EXT}dirs ]; then - dirs=`tr "\n" " " < debian/${EXT}dirs` - fi + if ($file) { + @dirs=filearray($file) + } - if [ "$PACKAGE" = "$MAINPACKAGE" -a "$*" ]; then - dirs="$* $dirs" - fi + 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; - 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 # Create dirs. - olddir=`pwd` - doit "cd $TMP" - doit "install -d $dirs" - doit "cd $olddir" - fi -done + doit("install","-d",@dirs); + } +}