]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_link
can use a hyphen here
[debhelper.git] / dh_link
diff --git a/dh_link b/dh_link
index e5413ecb77a4558c3d88e2242e5bc98ebd9ed1a7..dc396dd597fbae1516a9c7657e56c0a7f41dc9e1 100755 (executable)
--- a/dh_link
+++ b/dh_link
@@ -12,7 +12,7 @@ use Debian::Debhelper::Dh_Lib;
 
 =head1 SYNOPSIS
 
 
 =head1 SYNOPSIS
 
-B<dh_link> [S<I<debhelper options>>] [B<-A>] [S<I<source destination ...>>]
+B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source destination ...>>]
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
@@ -43,7 +43,7 @@ a path as possible. It will also create any subdirectories it needs to to put
 the symlinks in.
 
 dh_link also scans the package build tree for existing symlinks which do not
 the symlinks in.
 
 dh_link also scans the package build tree for existing symlinks which do not
-conform to debian policy, and corrects them (v4 only).
+conform to debian policy, and corrects them (v4 or later).
 
 =head1 OPTIONS
 
 
 =head1 OPTIONS
 
@@ -54,6 +54,11 @@ conform to debian policy, and corrects them (v4 only).
 Create any links specified by command line parameters in ALL packages
 acted on, not just the first.
 
 Create any links specified by command line parameters in ALL packages
 acted on, not just the first.
 
+=item B<-Xitem>, B<--exclude=item>
+
+Do not correct symlinks that contain "item" anywhere in their filename from
+being corrected to comply with debian policy.
+
 =item I<source destination ...>
 
 Create a file named "destination" as a link to a file named "source". Do
 =item I<source destination ...>
 
 Create a file named "destination" as a link to a file named "source". Do
@@ -138,13 +143,14 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                error("parameters list a link without a destination.");
        }
 
                error("parameters list a link without a destination.");
        }
 
-       # v4 only and only if there is a temp dir already
+       # v4 or later and only if there is a temp dir already
        if (! compat(3) && -e $tmp) {
                # Scan for existing links and add them to @links, so they
                # are recreated policy conformant.
                find(
                        sub {
                                return unless -l;
        if (! compat(3) && -e $tmp) {
                # Scan for existing links and add them to @links, so they
                # are recreated policy conformant.
                find(
                        sub {
                                return unless -l;
+                               return if excludefile($_);
                                my $dir=$File::Find::dir;
                                $dir=~s/^\Q$tmp\E//;
                                my $target = readlink($_);
                                my $dir=$File::Find::dir;
                                $dir=~s/^\Q$tmp\E//;
                                my $target = readlink($_);
@@ -166,6 +172,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
 
                $src=~s:^/::;
                $dest=~s:^/::;
 
                $src=~s:^/::;
                $dest=~s:^/::;
+               
+               if ($src eq $dest) {
+                       warning("skipping link from $src to self");
+                       next;
+               }
 
                # Make sure the directory the link will be in exists.
                my $basedir=dirname("$tmp/$dest");
 
                # Make sure the directory the link will be in exists.
                my $basedir=dirname("$tmp/$dest");
@@ -182,7 +193,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                        # Figure out how much of a path $src and $dest
                        # share in common.
                        my $x;
                        # Figure out how much of a path $src and $dest
                        # share in common.
                        my $x;
-                       for ($x=0; $x<@src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {}
+                       for ($x=0; $x < @src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {}
                        # Build up the new src.
                        $src="";
                        for (1..$#dest_dirs - $x) {
                        # Build up the new src.
                        $src="";
                        for (1..$#dest_dirs - $x) {