summaryrefslogtreecommitdiff
path: root/solenv/bin/modules/installer/systemactions.pm
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2005-05-13 08:42:14 +0000
committerRüdiger Timm <rt@openoffice.org>2005-05-13 08:42:14 +0000
commitc72f59786ab75660c34994ab4887db5cb12fbc39 (patch)
tree379607084bd8129421c67e1495218fedd386b74d /solenv/bin/modules/installer/systemactions.pm
parented4653dee082b49c4bfd22bb2c72f53855044cba (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
Diffstat (limited to 'solenv/bin/modules/installer/systemactions.pm')
-rw-r--r--solenv/bin/modules/installer/systemactions.pm72
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.
#####################################################