diff options
author | Niels Thykier <niels@thykier.net> | 2017-06-26 13:04:52 +0000 |
---|---|---|
committer | Niels Thykier <niels@thykier.net> | 2017-06-26 13:16:51 +0000 |
commit | 3d8a18251a391e35eb674fa73b7fbe678c04dd9c (patch) | |
tree | 1c8cb4ed5f32798529145c14cb06b49f640228f5 /dh_install | |
parent | 62cf057d60b8156159342bead49a7df13f56030e (diff) |
dh_install: Refactor handling of autodest
Signed-off-by: Niels Thykier <niels@thykier.net>
Diffstat (limited to 'dh_install')
-rwxr-xr-x | dh_install | 27 |
1 files changed, 11 insertions, 16 deletions
@@ -176,7 +176,6 @@ foreach my $package (getpackages()) { foreach my $set (@install) { my $dest; - my $tmpdest=0; if (! defined $dh{AUTODEST} && @$set > 1) { $dest=pop @$set; @@ -227,18 +226,18 @@ foreach my $package (getpackages()) { next if $skip_install or $missing_files; foreach my $src (@filelist) { - - if (! defined $dest) { + + my $target_dest = $dest; + if (! defined $$target_dest) { # Guess at destination directory. - $dest=$src; - $dest=~s/^(.*\/)?\Q$srcdir\E\///; - $dest=~s/^(.*\/)?debian\/tmp\///; - $dest=dirname("/".$dest); - $tmpdest=1; + $target_dest = $src; + $target_dest =~ s/^(.*\/)?\Q$srcdir\E\///; + $target_dest =~ s/^(.*\/)?debian\/tmp\///; + $target_dest = dirname("/".$target_dest); } # Make sure the destination directory exists. - install_dir("$tmp/$dest"); + install_dir("$tmp/$target_dest"); if (-d $src && $exclude) { my $basename = basename($src); @@ -247,19 +246,15 @@ foreach my $package (getpackages()) { chomp $pwd; complex_doit("cd '$dir' && " . "find '$basename' $exclude \\( -type f -or -type l \\) -print0 | LC_ALL=C sort -z | " . - "xargs -0 -I {} cp --reflink=auto --parents -dp {} $pwd/$tmp/$dest/"); + "xargs -0 -I {} cp --reflink=auto --parents -dp {} $pwd/$tmp/$target_dest/"); # cp is annoying so I need a separate pass # just for empty directories complex_doit("cd '$dir' && " . "find '$basename' $exclude \\( -type d -and -empty \\) -print0 | LC_ALL=C sort -z | " . - "xargs -0 -I {} cp --reflink=auto --parents -a {} $pwd/$tmp/$dest/"); + "xargs -0 -I {} cp --reflink=auto --parents -a {} $pwd/$tmp/$target_dest/"); } else { - doit("cp", '--reflink=auto', "-a", $src, "$tmp/$dest/"); - } - - if ($tmpdest) { - $dest=undef; + doit("cp", '--reflink=auto', "-a", $src, "$tmp/$target_dest/"); } } } |