]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_undocumented
r266: * FHS complience. Patch from Johnie Ingram <johnie@netgod.net>.
[debhelper.git] / dh_undocumented
index ebde890499f98455cb835893e8fa921c97a92478..c8aa5623b03626786f97834ce53eee8327325bbe 100755 (executable)
@@ -1,51 +1,54 @@
-#!/bin/sh -e
+#!/usr/bin/perl -w
 #
 # Passed a list of undocumented man pages, generates symlinks to
-# undocumented.7 for those man pages.
+# undocumented.7.gz for those man pages.
 #
 # Also, it looks for debian/undocumented files for more lists of
 # undocumented man pages.
 
-PATH=debian:$PATH:/usr/lib/debhelper
-. dh_lib
-
-for PACKAGE in $DH_DOPACKAGES; do
-        TMP=`tmpdir $PACKAGE`
-       EXT=`pkgext $PACKAGE`
-
-       undoc=""
-
-       if [ -e debian/${EXT}undocumented ]; then
-               undoc=`tr "\n" " " < debian/${EXT}undocumented`
-       fi
-
-       if [ "$PACKAGE" = "$MAINPACKAGE" -a "$*" ]; then
-               undoc="$* $undoc"
-       fi
-
-       if [ "$undoc" ]; then
-               for file in $undoc; do
-                       # Remove .gz extention from the filename, if present.
-                       if [ `expr "$file" : '\(.*\).gz'` ]; then
-                               file=`expr "$file" : '\(.*\).gz'`
-                       fi
-
-                       # Determine what directory the file belongs in,
-                       # /usr/man, or /usr/X11R6/man.
-                       section=`expr "$file" : '.*\.\([123456789]\)'`
-                       if [ `expr "$file" : '.*\.[123456789]\(x\)'` ] ; then
-                               dir=usr/X11R6/man/man$section
-                               reldir=../../../man
-                       else
-                               dir=usr/man/man$section
-                               reldir=..
-                       fi
-
-                       if [ ! -d debian/$TMP/$dir ]; then
-                               doit "install -d debian/$TMP/$dir"
-                       fi
-
-                       doit ln -s $reldir/man7/undocumented.7.gz debian/$TMP/$dir/$file.gz
-               done
-       fi
-done
+BEGIN { push @INC, "debian", "/usr/share/debhelper" }
+use Dh_Lib;
+init();
+
+foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
+       $TMP=tmpdir($PACKAGE);
+       $undocumented=pkgfile($PACKAGE,"undocumented");
+
+       @undoc=();
+       if ($undocumented) {
+               @undoc=filearray($undocumented);
+       }
+
+       if (($PACKAGE eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+               push @undoc, @ARGV;
+       }       
+
+       foreach $file (@undoc) {
+               $file=~s/.gz$//; # .gz extention is optional in input.
+
+               # Determine what directory the file belongs in,
+               # /usr/share/man, or /usr/X11R6/man, and how the link to
+               # the undocuemtned.7 man page will look.
+               ($section)=$file=~m/^.*\.(\d)/;
+               if (!$section) {
+                       error("\"$file\" does not have an extention.");
+               }       
+               if ($file=~/.*\.\dx/) {
+                       $dir="usr/X11R6/man/man$section";
+                       $reldir="../../../man/man7/";
+               }
+               elsif ($section != 7) {
+                       $dir="usr/share/man/man$section";
+                       $reldir="../man7/";
+               }
+               else {
+                       $dir="usr/share/man/man$section";
+                       $reldir="";
+               }
+
+               if (! -d "$TMP/$dir") {
+                       doit("install","-d","$TMP/$dir");
+               }
+               doit("ln","-sf","${reldir}undocumented.7.gz","$TMP/$dir/$file.gz");
+       }
+}