summaryrefslogtreecommitdiffstats
path: root/MDK
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2003-11-17 17:25:44 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2003-11-17 17:25:44 +0000
commit49ee6a7546c7e022bca22e631e86b5b24b9e8267 (patch)
tree27c86264fbc5327a1beda266477c4392444bc166 /MDK
parent5157c27d1a4c2223e46999cd4405872b1d2e5807 (diff)
downloadperl-MDK-Common-49ee6a7546c7e022bca22e631e86b5b24b9e8267.tar
perl-MDK-Common-49ee6a7546c7e022bca22e631e86b5b24b9e8267.tar.gz
perl-MDK-Common-49ee6a7546c7e022bca22e631e86b5b24b9e8267.tar.bz2
perl-MDK-Common-49ee6a7546c7e022bca22e631e86b5b24b9e8267.tar.xz
perl-MDK-Common-49ee6a7546c7e022bca22e631e86b5b24b9e8267.zip
substInFile: if file is a symlink, make sure it stays a symlink
Diffstat (limited to 'MDK')
-rw-r--r--MDK/Common/File.pm9
1 files changed, 9 insertions, 0 deletions
diff --git a/MDK/Common/File.pm b/MDK/Common/File.pm
index 49895a0..95b2b30 100644
--- a/MDK/Common/File.pm
+++ b/MDK/Common/File.pm
@@ -219,6 +219,14 @@ sub glob_ {
sub substInFile(&@) {
my ($f, $file) = @_;
+ my $linkdest;
+ #- try hard to keep symlinks as they were set
+ if (-l $file) {
+ my $targetfile = readlink $file;
+ unlink $file;
+ $linkdest = $file;
+ $file = $targetfile;
+ }
if (-s $file) {
local @ARGV = $file;
local $^I = '';
@@ -235,6 +243,7 @@ sub substInFile(&@) {
select $old;
eval { output($file, $_) };
}
+ $linkdest and symlink $file, $linkdest;
}