]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installmanpages
r399: * dh_movefiles: added error message on file not found
[debhelper.git] / dh_installmanpages
index 7e8eae6a59bbd848bbae41833c4e46911b19db31..81e072e77447b03a879cebfab365a7f3962dbf04 100755 (executable)
@@ -7,8 +7,7 @@
 # This is a little bit (hah!) DWIMish, but still very handy.
 
 use File::Find;
-BEGIN { push @INC, "debian", "/usr/share/debhelper" }
-use Dh_Lib;
+use Debian::Debhelper::Dh_Lib;
 init();
 
 # Check if a file is a man page, for use by File::Find.
@@ -18,8 +17,8 @@ sub find_man {
        # Does its filename look like a man page?
        # .ex files are examples installed by deb-make,
        # we don't want those, or .in files, which are
-       # from configure.
-       if (! (-f $_ && /^.*\.[1-9].*$/ && ! /\.(ex|in)$/)) {
+       # from configure, nor do we want CVS .#* files.
+       if (! (-f $_ && /^.*\.[1-9].*$/ && ! /\.(ex|in)$/ && ! /^\.#/)) {
                return;
        }
        
@@ -60,8 +59,9 @@ sub find_so_man {
        if ($l=~m/\.so\s+(.*)/) {
                my $solink=$1;
                # This test is here to prevent links like ... man8/../man8/foo.8
-               if (Dh_Lib::basename($File::Find::dir) eq Dh_Lib::dirname($solink)) {
-                       $solink=Dh_Lib::basename($solink);
+               if (Debian::Debhelper::Dh_Lib::basename($File::Find::dir) eq
+                   Debian::Debhelper::Dh_Lib::dirname($solink)) {
+                       $solink=Debian::Debhelper::Dh_Lib::basename($solink);
                }
                else {
                        $solink="../$solink";
@@ -83,14 +83,14 @@ foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
        foreach $page (@manpages) {
                $page=~s:^\./::; # just for looks
                
-               $basename=Dh_Lib::basename($page);
+               $basename=Debian::Debhelper::Dh_Lib::basename($page);
                
                # Skip all files listed on command line.
                my $install=1;
                foreach $skip (@ARGV) {
                        # Look at basename of what's on connect line
                        # for backwards compatability.
-                       if ($basename eq Dh_Lib::basename($skip)) {
+                       if ($basename eq Debian::Debhelper::Dh_Lib::basename($skip)) {
                                $install=undef;
                                last;
                        }
@@ -106,12 +106,22 @@ foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
                        my ($section)=$basename=~m/.*\.([1-9])/;
                        
                        my $destdir="$TMP/usr/$extdir/man/man$section/";
+                       
+                       # Handle translated man pages.
+                       my $instname=$basename;
+                       my ($langcode)=$basename=~m/.*\.([a-z][a-z])\.([1-9])/;
+                       if (defined $langcode && $langcode ne '') {
+                               $destdir="$TMP/usr/$extdir/man/$langcode/man$section/";
+                               $instname=~s/\.$langcode\./\./;
+                       }
+                       
                        $destdir=~tr:/:/:s; # just for looks
+                       
                        if (! -e "$destdir/$basename" && !-l "$destdir/$basename") {
                                if (! -d $destdir) {
                                        doit "install","-d",$destdir;
                                }
-                               doit "install","-p","-m644",$page,$destdir;
+                               doit "install","-p","-m644",$page,$destdir.$instname;
                        }
                }
        }