diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2003-11-17 17:25:44 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2003-11-17 17:25:44 +0000 |
commit | 49ee6a7546c7e022bca22e631e86b5b24b9e8267 (patch) | |
tree | 27c86264fbc5327a1beda266477c4392444bc166 /MDK | |
parent | 5157c27d1a4c2223e46999cd4405872b1d2e5807 (diff) | |
download | perl-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.pm | 9 |
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; } |