diff options
author | Rüdiger Timm <rt@openoffice.org> | 2005-05-13 08:42:14 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2005-05-13 08:42:14 +0000 |
commit | c72f59786ab75660c34994ab4887db5cb12fbc39 (patch) | |
tree | 379607084bd8129421c67e1495218fedd386b74d | |
parent | ed4653dee082b49c4bfd22bb2c72f53855044cba (diff) |
INTEGRATION: CWS nativefixer7 (1.17.34); FILE MERGED
2005/04/28 15:03:32 is 1.17.34.1: #121723# jds office installation sets
-rw-r--r-- | solenv/bin/modules/installer/systemactions.pm | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm index b33cd550f636..0d2b3eb07fb8 100644 --- a/solenv/bin/modules/installer/systemactions.pm +++ b/solenv/bin/modules/installer/systemactions.pm @@ -267,6 +267,34 @@ sub copy_one_file } ######################## +# Copying one file +######################## + +sub hardlink_one_file +{ + my ($source, $dest) = @_; + + my ($returnvalue, $infoline); + + my $copyreturn = link($source, $dest); + + if ($copyreturn) + { + $infoline = "Link: $source to $dest\n"; + $returnvalue = 1; + } + else + { + $infoline = "ERROR: Could not link $source to $dest\n"; + $returnvalue = 0; + } + + push(@installer::globals::logfileinfo, $infoline); + + return $returnvalue; +} + +######################## # Renaming one file ######################## @@ -333,6 +361,50 @@ sub copy_directory } } +##################################################################### +# Creating hard links to a complete directory with sub directories. +##################################################################### + +sub hardlink_complete_directory +{ + my ($sourcedir, $destdir) = @_; + + my @sourcefiles = (); + + $sourcedir =~ s/\Q$installer::globals::separator\E\s*$//; + $destdir =~ s/\Q$installer::globals::separator\E\s*$//; + + if ( ! -d $destdir ) { create_directory($destdir); } + + my $infoline = "\n"; + push(@installer::globals::logfileinfo, $infoline); + $infoline = "Creating hard links for all files from directory $sourcedir to directory $destdir\n"; + push(@installer::globals::logfileinfo, $infoline); + + opendir(DIR, $sourcedir); + @sourcefiles = readdir(DIR); + closedir(DIR); + + my $onefile; + + foreach $onefile (@sourcefiles) + { + if ((!($onefile eq ".")) && (!($onefile eq ".."))) + { + my $source = $sourcedir . $installer::globals::separator . $onefile; + my $dest = $destdir . $installer::globals::separator . $onefile; + if ( -f $source ) # only files, no directories + { + hardlink_one_file($source, $dest); + } + if ( -d $source ) # recursive + { + hardlink_complete_directory($source, $dest); + } + } + } +} + ##################################################### # Copying a complete directory with sub directories. ##################################################### |