summaryrefslogtreecommitdiffstats
path: root/solenv/bin/modules/installer/windows/directory.pm
diff options
context:
space:
mode:
authorIngo Schmidt <is@openoffice.org>2010-05-27 14:50:25 +0200
committerIngo Schmidt <is@openoffice.org>2010-05-27 14:50:25 +0200
commita76e94f5f77b03807a01635d9d95eb0fb31fc934 (patch)
tree76481142d3b18cffaf84a608da5df7183bc81306 /solenv/bin/modules/installer/windows/directory.pm
parentnative305 #i92977# new Windows INSTALLLOCATION settings (diff)
downloadcore-a76e94f5f77b03807a01635d9d95eb0fb31fc934.tar.gz
core-a76e94f5f77b03807a01635d9d95eb0fb31fc934.zip
native305 #i92977# new Windows INSTALLLOCATION settings
Diffstat (limited to 'solenv/bin/modules/installer/windows/directory.pm')
-rw-r--r--solenv/bin/modules/installer/windows/directory.pm45
1 files changed, 34 insertions, 11 deletions
diff --git a/solenv/bin/modules/installer/windows/directory.pm b/solenv/bin/modules/installer/windows/directory.pm
index 6dde28120a44..ba6f9a3b75bd 100644
--- a/solenv/bin/modules/installer/windows/directory.pm
+++ b/solenv/bin/modules/installer/windows/directory.pm
@@ -138,17 +138,44 @@ sub create_unique_directorynames
$installer::globals::installlocationdirectoryset = 1;
if ( $installer::globals::installlocationdirectory =~ /oracle_/i ) { $installer::globals::sundirexists = 1; }
}
+
+ # setting the sundirectory
+ if ( $styles =~ /\bSUNDIRECTORY\b/ )
+ {
+ if ( $installer::globals::vendordirectoryset ) { installer::exiter::exit_program("ERROR: Directory with flag SUNDIRECTORY alread set: \"$installer::globals::vendordirectory\".", "create_unique_directorynames"); }
+ $installer::globals::vendordirectory = $uniquename;
+ $installer::globals::vendordirectoryset = 1;
+ }
}
}
#####################################################
+# Adding ":." to selected default directory names
+#####################################################
+
+sub check_sourcedir_addon
+{
+ my ( $onedir, $allvariableshashref ) = @_;
+
+ if (($installer::globals::addchildprojects) ||
+ ($installer::globals::patch) ||
+ ($installer::globals::languagepack) ||
+ ($allvariableshashref->{'CHANGETARGETDIR'}))
+ {
+ my $sourcediraddon = "\:\.";
+ $onedir->{'defaultdir'} = $onedir->{'defaultdir'} . $sourcediraddon;
+ }
+
+}
+
+#####################################################
# The directory with the style ISINSTALLLOCATION
# will be replaced by INSTALLLOCATION
#####################################################
sub set_installlocation_directory
{
- my ( $directoryref ) = @_;
+ my ( $directoryref, $allvariableshashref ) = @_;
if ( ! $installer::globals::installlocationdirectoryset ) { installer::exiter::exit_program("ERROR: Directory with flag ISINSTALLLOCATION not set!", "set_installlocation_directory"); }
@@ -159,16 +186,12 @@ sub set_installlocation_directory
if ( $onedir->{'uniquename'} eq $installer::globals::installlocationdirectory )
{
$onedir->{'uniquename'} = "INSTALLLOCATION";
+ check_sourcedir_addon($onedir, $allvariableshashref);
+ }
- if (($installer::globals::addchildprojects) ||
- ($installer::globals::patch) ||
- ($installer::globals::languagepack) ||
- ($allvariableshashref->{'CHANGETARGETDIR'}))
- {
-
- my $sourcediraddon = "\:\.";
- $onedir->{'defaultdir'} = $onedir->{'defaultdir'} . $sourcediraddon;
- }
+ if ( $onedir->{'uniquename'} eq $installer::globals::vendordirectory )
+ {
+ check_sourcedir_addon($onedir, $allvariableshashref);
}
if ( $onedir->{'uniqueparentname'} eq $installer::globals::installlocationdirectory )
@@ -415,7 +438,7 @@ sub create_directory_table
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_1.log", $directoryref); }
create_defaultdir_directorynames($directoryref, $shortdirnamehashref); # only destdir!
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_2.log", $directoryref); }
- set_installlocation_directory($directoryref);
+ set_installlocation_directory($directoryref, $allvariableshashref);
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_3.log", $directoryref); }
installer::windows::idtglobal::write_idt_header(\@directorytable, "directory");
add_root_directories(\@directorytable, $allvariableshashref);