1*b1cdbd2cSJim Jagielski#************************************************************** 2*b1cdbd2cSJim Jagielski# 3*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski# distributed with this work for additional information 6*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski# 11*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski# 13*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski# under the License. 19*b1cdbd2cSJim Jagielski# 20*b1cdbd2cSJim Jagielski#************************************************************** 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielskipackage installer::windows::property; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielskiuse installer::exiter; 27*b1cdbd2cSJim Jagielskiuse installer::files; 28*b1cdbd2cSJim Jagielskiuse installer::globals; 29*b1cdbd2cSJim Jagielskiuse installer::windows::idtglobal; 30*b1cdbd2cSJim Jagielskiuse installer::windows::language; 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski############################################# 33*b1cdbd2cSJim Jagielski# Setting the properties dynamically 34*b1cdbd2cSJim Jagielski# for the table Property.idt 35*b1cdbd2cSJim Jagielski############################################# 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielskisub get_arpcomments_for_property_table 38*b1cdbd2cSJim Jagielski{ 39*b1cdbd2cSJim Jagielski my ( $allvariables, $languagestringref ) = @_; 40*b1cdbd2cSJim Jagielski 41*b1cdbd2cSJim Jagielski my $name = $allvariables->{'PRODUCTNAME'}; 42*b1cdbd2cSJim Jagielski my $version = $allvariables->{'PRODUCTVERSION'}; 43*b1cdbd2cSJim Jagielski my $comment = $name . " " . $version; 44*b1cdbd2cSJim Jagielski 45*b1cdbd2cSJim Jagielski my $postversionextension = ""; 46*b1cdbd2cSJim Jagielski if ( $allvariables->{'POSTVERSIONEXTENSION'} ) 47*b1cdbd2cSJim Jagielski { 48*b1cdbd2cSJim Jagielski $postversionextension = $allvariables->{'POSTVERSIONEXTENSION'}; 49*b1cdbd2cSJim Jagielski $comment = $comment . " " . $postversionextension; 50*b1cdbd2cSJim Jagielski } 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski if ( $installer::globals::languagepack ) { $comment = $comment . " " . "Language Pack"; } 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski if ( $installer::globals::patch ) 55*b1cdbd2cSJim Jagielski { 56*b1cdbd2cSJim Jagielski if ( ! $allvariables->{'WINDOWSPATCHLEVEL'} ) { installer::exiter::exit_program("ERROR: No Patch level defined for Windows patch: WINDOWSPATCHLEVEL", "get_arpcomments_for_property_table"); } 57*b1cdbd2cSJim Jagielski my $patchstring = "Product Update" . " " . $allvariables->{'WINDOWSPATCHLEVEL'}; 58*b1cdbd2cSJim Jagielski $comment = $comment . " " . $patchstring; 59*b1cdbd2cSJim Jagielski } 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski my $languagestring = $$languagestringref; 62*b1cdbd2cSJim Jagielski $languagestring =~ s/\_/\,/g; 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski $comment = $comment . " ($languagestring)"; 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski my $localminor = ""; 67*b1cdbd2cSJim Jagielski if ( $installer::globals::updatepack ) { $localminor = $installer::globals::lastminor; } 68*b1cdbd2cSJim Jagielski else { $localminor = $installer::globals::minor; } 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski my $buildidstring = "(" . $installer::globals::build . $localminor . "(Build:" . $installer::globals::buildid . "))"; 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski # the environment variable CWS_WORK_STAMP is set only in CWS 73*b1cdbd2cSJim Jagielski if ( $ENV{'CWS_WORK_STAMP'} ) { $buildidstring = $buildidstring . "\[CWS\:" . $ENV{'CWS_WORK_STAMP'} . "\]"; } 74*b1cdbd2cSJim Jagielski 75*b1cdbd2cSJim Jagielski $comment = $comment . " " . $buildidstring; 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski return $comment; 78*b1cdbd2cSJim Jagielski} 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielskisub get_installlevel_for_property_table 81*b1cdbd2cSJim Jagielski{ 82*b1cdbd2cSJim Jagielski my $installlevel = "100"; 83*b1cdbd2cSJim Jagielski return $installlevel; 84*b1cdbd2cSJim Jagielski} 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielskisub get_ischeckforproductupdates_for_property_table 87*b1cdbd2cSJim Jagielski{ 88*b1cdbd2cSJim Jagielski my $ischeckforproductupdates = "1"; 89*b1cdbd2cSJim Jagielski return $ischeckforproductupdates; 90*b1cdbd2cSJim Jagielski} 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielskisub get_manufacturer_for_property_table 93*b1cdbd2cSJim Jagielski{ 94*b1cdbd2cSJim Jagielski return $installer::globals::manufacturer; 95*b1cdbd2cSJim Jagielski} 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielskisub get_productlanguage_for_property_table 98*b1cdbd2cSJim Jagielski{ 99*b1cdbd2cSJim Jagielski my ($language) = @_; 100*b1cdbd2cSJim Jagielski my $windowslanguage = installer::windows::language::get_windows_language($language); 101*b1cdbd2cSJim Jagielski return $windowslanguage; 102*b1cdbd2cSJim Jagielski} 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielskisub get_language_string 105*b1cdbd2cSJim Jagielski{ 106*b1cdbd2cSJim Jagielski my $langstring = ""; 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski for ( my $i = 0; $i <= $#installer::globals::languagenames; $i++ ) 109*b1cdbd2cSJim Jagielski { 110*b1cdbd2cSJim Jagielski $langstring = $langstring . $installer::globals::languagenames[$i] . ", "; 111*b1cdbd2cSJim Jagielski } 112*b1cdbd2cSJim Jagielski 113*b1cdbd2cSJim Jagielski $langstring =~ s/\,\s*$//; 114*b1cdbd2cSJim Jagielski $langstring = "(" . $langstring . ")"; 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski return $langstring; 117*b1cdbd2cSJim Jagielski} 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielskisub get_english_language_string 120*b1cdbd2cSJim Jagielski{ 121*b1cdbd2cSJim Jagielski my $langstring = ""; 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski # Sorting value not keys, therefore collecting all values 124*b1cdbd2cSJim Jagielski my %helper = (); 125*b1cdbd2cSJim Jagielski foreach my $lang ( keys %installer::globals::all_required_english_languagestrings ) 126*b1cdbd2cSJim Jagielski { 127*b1cdbd2cSJim Jagielski $helper{$installer::globals::all_required_english_languagestrings{$lang}} = 1; 128*b1cdbd2cSJim Jagielski } 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski foreach my $lang ( sort keys %helper ) 131*b1cdbd2cSJim Jagielski { 132*b1cdbd2cSJim Jagielski $langstring = $langstring . $lang . ", "; 133*b1cdbd2cSJim Jagielski } 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski $langstring =~ s/\,\s*$//; 136*b1cdbd2cSJim Jagielski $langstring = "(" . $langstring . ")"; 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski return $langstring; 139*b1cdbd2cSJim Jagielski} 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielskisub get_productname_for_property_table 142*b1cdbd2cSJim Jagielski{ 143*b1cdbd2cSJim Jagielski my ( $allvariables ) = @_; 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski my $name = $allvariables->{'PRODUCTNAME'}; 146*b1cdbd2cSJim Jagielski my $version = $allvariables->{'PRODUCTVERSION'}; 147*b1cdbd2cSJim Jagielski my $productname = $name . " " . $version; 148*b1cdbd2cSJim Jagielski 149*b1cdbd2cSJim Jagielski my $postversionextension = ""; 150*b1cdbd2cSJim Jagielski if ( $allvariables->{'POSTVERSIONEXTENSION'} ) 151*b1cdbd2cSJim Jagielski { 152*b1cdbd2cSJim Jagielski $postversionextension = $allvariables->{'POSTVERSIONEXTENSION'}; 153*b1cdbd2cSJim Jagielski $productname = $productname . " " . $postversionextension; 154*b1cdbd2cSJim Jagielski } 155*b1cdbd2cSJim Jagielski 156*b1cdbd2cSJim Jagielski my $productextension = ""; 157*b1cdbd2cSJim Jagielski if ( $allvariables->{'PRODUCTEXTENSION'} ) 158*b1cdbd2cSJim Jagielski { 159*b1cdbd2cSJim Jagielski $productextension = $allvariables->{'PRODUCTEXTENSION'}; 160*b1cdbd2cSJim Jagielski $productname = $productname . " " . $productextension; 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski if ( $installer::globals::languagepack ) 164*b1cdbd2cSJim Jagielski { 165*b1cdbd2cSJim Jagielski # my $langstring = get_language_string(); # Example (English, Deutsch) 166*b1cdbd2cSJim Jagielski my $langstring = get_english_language_string(); # New: (English, German) 167*b1cdbd2cSJim Jagielski $productname = $name . " " . $version . " Language Pack" . " " . $langstring; 168*b1cdbd2cSJim Jagielski } 169*b1cdbd2cSJim Jagielski 170*b1cdbd2cSJim Jagielski if ( $installer::globals::patch ) 171*b1cdbd2cSJim Jagielski { 172*b1cdbd2cSJim Jagielski if ( ! $allvariables->{'WINDOWSPATCHLEVEL'} ) { installer::exiter::exit_program("ERROR: No Patch level defined for Windows patch: WINDOWSPATCHLEVEL", "get_productname_for_property_table"); } 173*b1cdbd2cSJim Jagielski my $patchstring = "Product Update" . " " . $allvariables->{'WINDOWSPATCHLEVEL'}; 174*b1cdbd2cSJim Jagielski $productname = $productname . " " . $patchstring; 175*b1cdbd2cSJim Jagielski } 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski # Saving this name in hash $allvariables for further usage 178*b1cdbd2cSJim Jagielski $allvariables->{'PROPERTYTABLEPRODUCTNAME'} = $productname; 179*b1cdbd2cSJim Jagielski my $infoline = "Defined variable PROPERTYTABLEPRODUCTNAME: $productname\n"; 180*b1cdbd2cSJim Jagielski $installer::logger::Lang->print($infoline); 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski return $productname; 183*b1cdbd2cSJim Jagielski} 184*b1cdbd2cSJim Jagielski 185*b1cdbd2cSJim Jagielskisub get_quickstarterlinkname_for_property_table 186*b1cdbd2cSJim Jagielski{ 187*b1cdbd2cSJim Jagielski my ( $allvariables ) = @_; 188*b1cdbd2cSJim Jagielski 189*b1cdbd2cSJim Jagielski # no usage of POSTVERSIONEXTENSION for Quickstarter link name! 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski my $name = $allvariables->{'PRODUCTNAME'}; 192*b1cdbd2cSJim Jagielski my $version = $allvariables->{'PRODUCTVERSION'}; 193*b1cdbd2cSJim Jagielski my $quickstartername = $name . " " . $version; 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski my $infoline = "Defined Quickstarter Link name: $quickstartername\n"; 196*b1cdbd2cSJim Jagielski $installer::logger::Lang->print($infoline); 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski return $quickstartername; 199*b1cdbd2cSJim Jagielski} 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielskisub get_productversion_for_property_table 202*b1cdbd2cSJim Jagielski{ 203*b1cdbd2cSJim Jagielski return $installer::globals::msiproductversion; 204*b1cdbd2cSJim Jagielski} 205*b1cdbd2cSJim Jagielski 206*b1cdbd2cSJim Jagielski####################################################### 207*b1cdbd2cSJim Jagielski# Setting all feature names as Properties. This is 208*b1cdbd2cSJim Jagielski# required for the Windows patch process. 209*b1cdbd2cSJim Jagielski####################################################### 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielskisub set_featurename_properties_for_patch ($) 212*b1cdbd2cSJim Jagielski{ 213*b1cdbd2cSJim Jagielski my ($propertyfile) = @_; 214*b1cdbd2cSJim Jagielski 215*b1cdbd2cSJim Jagielski foreach my $feature_gid (keys %installer::globals::featurecollector) 216*b1cdbd2cSJim Jagielski { 217*b1cdbd2cSJim Jagielski push @$propertyfile, $feature_gid . "\t" . "1" . "\n"; 218*b1cdbd2cSJim Jagielski } 219*b1cdbd2cSJim Jagielski} 220*b1cdbd2cSJim Jagielski 221*b1cdbd2cSJim Jagielski####################################################### 222*b1cdbd2cSJim Jagielski# Setting some important properties 223*b1cdbd2cSJim Jagielski# (for finding the product in deinstallation process) 224*b1cdbd2cSJim Jagielski####################################################### 225*b1cdbd2cSJim Jagielski 226*b1cdbd2cSJim Jagielskisub set_important_properties 227*b1cdbd2cSJim Jagielski{ 228*b1cdbd2cSJim Jagielski my ($propertyfile, $allvariables, $languagestringref) = @_; 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski # Setting new variables with the content of %PRODUCTNAME and %PRODUCTVERSION 231*b1cdbd2cSJim Jagielski if ( $allvariables->{'PRODUCTNAME'} ) 232*b1cdbd2cSJim Jagielski { 233*b1cdbd2cSJim Jagielski my $onepropertyline = "DEFINEDPRODUCT" . "\t" . $allvariables->{'PRODUCTNAME'} . "\n"; 234*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 235*b1cdbd2cSJim Jagielski } 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski if ( $allvariables->{'PRODUCTVERSION'} ) 238*b1cdbd2cSJim Jagielski { 239*b1cdbd2cSJim Jagielski my $onepropertyline = "DEFINEDVERSION" . "\t" . $allvariables->{'PRODUCTVERSION'} . "\n"; 240*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 241*b1cdbd2cSJim Jagielski } 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski if (( $allvariables->{'PRODUCTNAME'} ) && ( $allvariables->{'PRODUCTVERSION'} ) && ( $allvariables->{'MANUFACTURER'} ) && ( $allvariables->{'PRODUCTCODE'} )) 244*b1cdbd2cSJim Jagielski { 245*b1cdbd2cSJim Jagielski my $onepropertyline = "FINDPRODUCT" . "\t" . "Software\\" . $allvariables->{'MANUFACTURER'} . "\\" . $allvariables->{'PRODUCTNAME'} . $allvariables->{'PRODUCTADDON'} . "\\" . $allvariables->{'PRODUCTVERSION'} . "\\" . $allvariables->{'PRODUCTCODE'} . "\n"; 246*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 247*b1cdbd2cSJim Jagielski } 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielski if ( $allvariables->{'PRODUCTMAJOR'} ) 250*b1cdbd2cSJim Jagielski { 251*b1cdbd2cSJim Jagielski my $onepropertyline = "PRODUCTMAJOR" . "\t" . $allvariables->{'PRODUCTMAJOR'} . "\n"; 252*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 253*b1cdbd2cSJim Jagielski } 254*b1cdbd2cSJim Jagielski 255*b1cdbd2cSJim Jagielski if ( $allvariables->{'PRODUCTMINOR'} ) 256*b1cdbd2cSJim Jagielski { 257*b1cdbd2cSJim Jagielski my $onepropertyline = "PRODUCTMINOR" . "\t" . $allvariables->{'PRODUCTMINOR'} . "\n"; 258*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 259*b1cdbd2cSJim Jagielski } 260*b1cdbd2cSJim Jagielski 261*b1cdbd2cSJim Jagielski if ( $allvariables->{'PRODUCTBUILDID'} ) 262*b1cdbd2cSJim Jagielski { 263*b1cdbd2cSJim Jagielski my $onepropertyline = "PRODUCTBUILDID" . "\t" . $allvariables->{'PRODUCTBUILDID'} . "\n"; 264*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 265*b1cdbd2cSJim Jagielski } 266*b1cdbd2cSJim Jagielski 267*b1cdbd2cSJim Jagielski if ( $allvariables->{'OOOBASEVERSION'} ) 268*b1cdbd2cSJim Jagielski { 269*b1cdbd2cSJim Jagielski my $onepropertyline = "OOOBASEVERSION" . "\t" . $allvariables->{'OOOBASEVERSION'} . "\n"; 270*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 271*b1cdbd2cSJim Jagielski } 272*b1cdbd2cSJim Jagielski 273*b1cdbd2cSJim Jagielski if ( $allvariables->{'URELAYERVERSION'} ) 274*b1cdbd2cSJim Jagielski { 275*b1cdbd2cSJim Jagielski my $onepropertyline = "URELAYERVERSION" . "\t" . $allvariables->{'URELAYERVERSION'} . "\n"; 276*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 277*b1cdbd2cSJim Jagielski } 278*b1cdbd2cSJim Jagielski 279*b1cdbd2cSJim Jagielski if ( $allvariables->{'BRANDPACKAGEVERSION'} ) 280*b1cdbd2cSJim Jagielski { 281*b1cdbd2cSJim Jagielski my $onepropertyline = "BRANDPACKAGEVERSION" . "\t" . $allvariables->{'BRANDPACKAGEVERSION'} . "\n"; 282*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 283*b1cdbd2cSJim Jagielski } 284*b1cdbd2cSJim Jagielski 285*b1cdbd2cSJim Jagielski if ( $allvariables->{'BASISROOTNAME'} ) 286*b1cdbd2cSJim Jagielski { 287*b1cdbd2cSJim Jagielski my $onepropertyline = "BASISROOTNAME" . "\t" . $allvariables->{'BASISROOTNAME'} . "\n"; 288*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 289*b1cdbd2cSJim Jagielski } 290*b1cdbd2cSJim Jagielski 291*b1cdbd2cSJim Jagielski if ( $allvariables->{'EXCLUDE_FROM_REBASE'} ) 292*b1cdbd2cSJim Jagielski { 293*b1cdbd2cSJim Jagielski my $onepropertyline = "EXCLUDE_FROM_REBASE" . "\t" . $allvariables->{'EXCLUDE_FROM_REBASE'} . "\n"; 294*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 295*b1cdbd2cSJim Jagielski } 296*b1cdbd2cSJim Jagielski 297*b1cdbd2cSJim Jagielski if ( $allvariables->{'PREREQUIREDPATCH'} ) 298*b1cdbd2cSJim Jagielski { 299*b1cdbd2cSJim Jagielski my $onepropertyline = "PREREQUIREDPATCH" . "\t" . $allvariables->{'PREREQUIREDPATCH'} . "\n"; 300*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 301*b1cdbd2cSJim Jagielski } 302*b1cdbd2cSJim Jagielski 303*b1cdbd2cSJim Jagielski my $onepropertyline = "IGNOREPREREQUIREDPATCH" . "\t" . "1" . "\n"; 304*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 305*b1cdbd2cSJim Jagielski 306*b1cdbd2cSJim Jagielski $onepropertyline = "DONTOPTIMIZELIBS" . "\t" . "0" . "\n"; 307*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 308*b1cdbd2cSJim Jagielski 309*b1cdbd2cSJim Jagielski if ( $installer::globals::officedirhostname ) 310*b1cdbd2cSJim Jagielski { 311*b1cdbd2cSJim Jagielski my $onepropertyline = "OFFICEDIRHOSTNAME" . "\t" . $installer::globals::officedirhostname . "\n"; 312*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski my $localofficedirhostname = $installer::globals::officedirhostname; 315*b1cdbd2cSJim Jagielski $localofficedirhostname =~ s/\//\\/g; 316*b1cdbd2cSJim Jagielski $onepropertyline = "OFFICEDIRHOSTNAME_" . "\t" . $localofficedirhostname . "\n"; 317*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 318*b1cdbd2cSJim Jagielski } 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski if ( $installer::globals::desktoplinkexists ) 321*b1cdbd2cSJim Jagielski { 322*b1cdbd2cSJim Jagielski my $onepropertyline = "DESKTOPLINKEXISTS" . "\t" . "1" . "\n"; 323*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 324*b1cdbd2cSJim Jagielski 325*b1cdbd2cSJim Jagielski $onepropertyline = "CREATEDESKTOPLINK" . "\t" . "1" . "\n"; # Setting the default 326*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 327*b1cdbd2cSJim Jagielski } 328*b1cdbd2cSJim Jagielski 329*b1cdbd2cSJim Jagielski if ( $installer::globals::patch ) 330*b1cdbd2cSJim Jagielski { 331*b1cdbd2cSJim Jagielski my $onepropertyline = "ISPATCH" . "\t" . "1" . "\n"; 332*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 333*b1cdbd2cSJim Jagielski 334*b1cdbd2cSJim Jagielski $onepropertyline = "SETUP_USED" . "\t" . "0" . "\n"; 335*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 336*b1cdbd2cSJim Jagielski } 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski if ( $installer::globals::languagepack ) 339*b1cdbd2cSJim Jagielski { 340*b1cdbd2cSJim Jagielski my $onepropertyline = "ISLANGUAGEPACK" . "\t" . "1" . "\n"; 341*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 342*b1cdbd2cSJim Jagielski } 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim Jagielski my $languagesline = "PRODUCTALLLANGUAGES" . "\t" . $$languagestringref . "\n"; 345*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $languagesline); 346*b1cdbd2cSJim Jagielski 347*b1cdbd2cSJim Jagielski if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" )) 348*b1cdbd2cSJim Jagielski { 349*b1cdbd2cSJim Jagielski # my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n"; 350*b1cdbd2cSJim Jagielski # push(@{$propertyfile}, $registryline); 351*b1cdbd2cSJim Jagielski my $betainfoline = "BETAPRODUCT" . "\t" . "1" . "\n"; 352*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $betainfoline); 353*b1cdbd2cSJim Jagielski } 354*b1cdbd2cSJim Jagielski elsif ( $allvariables->{'DEVELOPMENTPRODUCT'} ) 355*b1cdbd2cSJim Jagielski { 356*b1cdbd2cSJim Jagielski my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n"; 357*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $registryline); 358*b1cdbd2cSJim Jagielski } 359*b1cdbd2cSJim Jagielski else 360*b1cdbd2cSJim Jagielski { 361*b1cdbd2cSJim Jagielski my $registryline = "WRITE_REGISTRY" . "\t" . "1" . "\n"; # Default: Write complete registry 362*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $registryline); 363*b1cdbd2cSJim Jagielski } 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim Jagielski # Adding also used tree conditions for multilayer products. 366*b1cdbd2cSJim Jagielski # These are saved in %installer::globals::usedtreeconditions 367*b1cdbd2cSJim Jagielski foreach my $treecondition (keys %installer::globals::usedtreeconditions) 368*b1cdbd2cSJim Jagielski { 369*b1cdbd2cSJim Jagielski my $onepropertyline = $treecondition . "\t" . "1" . "\n"; 370*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 371*b1cdbd2cSJim Jagielski } 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski # No more license dialog for selected products 374*b1cdbd2cSJim Jagielski if ( $allvariables->{'HIDELICENSEDIALOG'} ) 375*b1cdbd2cSJim Jagielski { 376*b1cdbd2cSJim Jagielski my $onepropertyline = "HIDEEULA" . "\t" . "1" . "\n"; 377*b1cdbd2cSJim Jagielski 378*b1cdbd2cSJim Jagielski my $already_defined = 0; 379*b1cdbd2cSJim Jagielski 380*b1cdbd2cSJim Jagielski for ( my $i = 0; $i <= $#{$propertyfile}; $i++ ) 381*b1cdbd2cSJim Jagielski { 382*b1cdbd2cSJim Jagielski if ( ${$propertyfile}[$i] =~ /^\s*HIDEEULA\t/ ) 383*b1cdbd2cSJim Jagielski { 384*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] = $onepropertyline; 385*b1cdbd2cSJim Jagielski $already_defined = 1; 386*b1cdbd2cSJim Jagielski last; 387*b1cdbd2cSJim Jagielski } 388*b1cdbd2cSJim Jagielski } 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielski if ( ! $already_defined ) 391*b1cdbd2cSJim Jagielski { 392*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 393*b1cdbd2cSJim Jagielski } 394*b1cdbd2cSJim Jagielski } 395*b1cdbd2cSJim Jagielski 396*b1cdbd2cSJim Jagielski # Setting .NET requirements 397*b1cdbd2cSJim Jagielski if ( $installer::globals::required_dotnet_version ne "" ) 398*b1cdbd2cSJim Jagielski { 399*b1cdbd2cSJim Jagielski my $onepropertyline = "REQUIRED_DOTNET_VERSION" . "\t" . $installer::globals::required_dotnet_version . "\n"; 400*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 401*b1cdbd2cSJim Jagielski 402*b1cdbd2cSJim Jagielski $onepropertyline = "DOTNET_SUFFICIENT" . "\t" . "1" . "\n"; # default value for found .NET 403*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 404*b1cdbd2cSJim Jagielski } 405*b1cdbd2cSJim Jagielski 406*b1cdbd2cSJim Jagielski} 407*b1cdbd2cSJim Jagielski 408*b1cdbd2cSJim Jagielski####################################################### 409*b1cdbd2cSJim Jagielski# Setting properties needed for ms file type registration 410*b1cdbd2cSJim Jagielski####################################################### 411*b1cdbd2cSJim Jagielski 412*b1cdbd2cSJim Jagielskisub set_ms_file_types_properties 413*b1cdbd2cSJim Jagielski{ 414*b1cdbd2cSJim Jagielski my ($propertyfile) = @_; 415*b1cdbd2cSJim Jagielski 416*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_PPS" . "\t" . "0" . "\n"); 417*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_PPSX" . "\t" . "0" . "\n"); 418*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_PPSM" . "\t" . "0" . "\n"); 419*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_PPAM" . "\t" . "0" . "\n"); 420*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_PPT" . "\t" . "0" . "\n"); 421*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_PPTX" . "\t" . "0" . "\n"); 422*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_PPTM" . "\t" . "0" . "\n"); 423*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_POT" . "\t" . "0" . "\n"); 424*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_POTX" . "\t" . "0" . "\n"); 425*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_POTM" . "\t" . "0" . "\n"); 426*b1cdbd2cSJim Jagielski 427*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_DOC" . "\t" . "0" . "\n"); 428*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_DOCX" . "\t" . "0" . "\n"); 429*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_DOCM" . "\t" . "0" . "\n"); 430*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_DOT" . "\t" . "0" . "\n"); 431*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_DOTX" . "\t" . "0" . "\n"); 432*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_DOTM" . "\t" . "0" . "\n"); 433*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_RTF" . "\t" . "0" . "\n"); 434*b1cdbd2cSJim Jagielski 435*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLS" . "\t" . "0" . "\n"); 436*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLSX" . "\t" . "0" . "\n"); 437*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLSM" . "\t" . "0" . "\n"); 438*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLSB" . "\t" . "0" . "\n"); 439*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLAM" . "\t" . "0" . "\n"); 440*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLT" . "\t" . "0" . "\n"); 441*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLTX" . "\t" . "0" . "\n"); 442*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_XLTM" . "\t" . "0" . "\n"); 443*b1cdbd2cSJim Jagielski 444*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_NO_MSO_TYPES" . "\t" . "0" . "\n"); 445*b1cdbd2cSJim Jagielski push(@{$propertyfile}, "REGISTER_ALL_MSO_TYPES" . "\t" . "0" . "\n"); 446*b1cdbd2cSJim Jagielski} 447*b1cdbd2cSJim Jagielski 448*b1cdbd2cSJim Jagielski#################################################################################### 449*b1cdbd2cSJim Jagielski# Updating the file Property.idt dynamically 450*b1cdbd2cSJim Jagielski# Content: 451*b1cdbd2cSJim Jagielski# Property Value 452*b1cdbd2cSJim Jagielski#################################################################################### 453*b1cdbd2cSJim Jagielski 454*b1cdbd2cSJim Jagielskisub update_property_table 455*b1cdbd2cSJim Jagielski{ 456*b1cdbd2cSJim Jagielski my ($basedir, $language, $allvariables, $languagestringref) = @_; 457*b1cdbd2cSJim Jagielski 458*b1cdbd2cSJim Jagielski my $properyfilename = $basedir . $installer::globals::separator . "Property.idt"; 459*b1cdbd2cSJim Jagielski 460*b1cdbd2cSJim Jagielski my $propertyfile = installer::files::read_file($properyfilename); 461*b1cdbd2cSJim Jagielski 462*b1cdbd2cSJim Jagielski # Getting the new values 463*b1cdbd2cSJim Jagielski # Some values (arpcomments, arpcontacts, ...) are inserted from the Property.mlf 464*b1cdbd2cSJim Jagielski 465*b1cdbd2cSJim Jagielski my $arpcomments = get_arpcomments_for_property_table($allvariables, $languagestringref); 466*b1cdbd2cSJim Jagielski my $installlevel = get_installlevel_for_property_table(); 467*b1cdbd2cSJim Jagielski my $ischeckforproductupdates = get_ischeckforproductupdates_for_property_table(); 468*b1cdbd2cSJim Jagielski my $manufacturer = $allvariables->{'OOOVENDOR'}; 469*b1cdbd2cSJim Jagielski my $productlanguage = get_productlanguage_for_property_table($language); 470*b1cdbd2cSJim Jagielski my $productname = get_productname_for_property_table($allvariables); 471*b1cdbd2cSJim Jagielski my $productversion = get_productversion_for_property_table(); 472*b1cdbd2cSJim Jagielski my $quickstarterlinkname = get_quickstarterlinkname_for_property_table($allvariables); 473*b1cdbd2cSJim Jagielski 474*b1cdbd2cSJim Jagielski # Updating the values 475*b1cdbd2cSJim Jagielski 476*b1cdbd2cSJim Jagielski for ( my $i = 0; $i <= $#{$propertyfile}; $i++ ) 477*b1cdbd2cSJim Jagielski { 478*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bARPCOMMENTSTEMPLATE\b/$arpcomments/; 479*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bINSTALLLEVELTEMPLATE\b/$installlevel/; 480*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bISCHECKFORPRODUCTUPDATESTEMPLATE\b/$ischeckforproductupdates/; 481*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bMANUFACTURERTEMPLATE\b/$manufacturer/; 482*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bPRODUCTLANGUAGETEMPLATE\b/$productlanguage/; 483*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bPRODUCTNAMETEMPLATE\b/$productname/; 484*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bPRODUCTVERSIONTEMPLATE\b/$productversion/; 485*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bQUICKSTARTERLINKNAMETEMPLATE\b/$quickstarterlinkname/; 486*b1cdbd2cSJim Jagielski } 487*b1cdbd2cSJim Jagielski 488*b1cdbd2cSJim Jagielski # Setting variables into propertytable 489*b1cdbd2cSJim Jagielski set_important_properties($propertyfile, $allvariables, $languagestringref); 490*b1cdbd2cSJim Jagielski 491*b1cdbd2cSJim Jagielski # Setting feature names as properties for Windows patch mechanism 492*b1cdbd2cSJim Jagielski if ( $installer::globals::patch ) { set_featurename_properties_for_patch($propertyfile); } 493*b1cdbd2cSJim Jagielski 494*b1cdbd2cSJim Jagielski # Setting variables for register for ms file types 495*b1cdbd2cSJim Jagielski set_ms_file_types_properties($propertyfile); 496*b1cdbd2cSJim Jagielski 497*b1cdbd2cSJim Jagielski # Saving the file 498*b1cdbd2cSJim Jagielski 499*b1cdbd2cSJim Jagielski installer::files::save_file($properyfilename ,$propertyfile); 500*b1cdbd2cSJim Jagielski my $infoline = "Updated idt file: $properyfilename\n"; 501*b1cdbd2cSJim Jagielski $installer::logger::Lang->print($infoline); 502*b1cdbd2cSJim Jagielski 503*b1cdbd2cSJim Jagielski} 504*b1cdbd2cSJim Jagielski 505*b1cdbd2cSJim Jagielski#################################################################################### 506*b1cdbd2cSJim Jagielski# Setting language specific Properties in file Property.idt dynamically 507*b1cdbd2cSJim Jagielski# Adding: 508*b1cdbd2cSJim Jagielski# is1033 = 1 509*b1cdbd2cSJim Jagielski# isMulti = 1 510*b1cdbd2cSJim Jagielski#################################################################################### 511*b1cdbd2cSJim Jagielski 512*b1cdbd2cSJim Jagielskisub set_languages_in_property_table 513*b1cdbd2cSJim Jagielski{ 514*b1cdbd2cSJim Jagielski my ($basedir, $languagesarrayref) = @_; 515*b1cdbd2cSJim Jagielski 516*b1cdbd2cSJim Jagielski my $properyfilename = $basedir . $installer::globals::separator . "Property.idt"; 517*b1cdbd2cSJim Jagielski my $propertyfile = installer::files::read_file($properyfilename); 518*b1cdbd2cSJim Jagielski 519*b1cdbd2cSJim Jagielski # Setting the component properties saved in %installer::globals::languageproperties 520*b1cdbd2cSJim Jagielski foreach my $localproperty ( keys %installer::globals::languageproperties ) 521*b1cdbd2cSJim Jagielski { 522*b1cdbd2cSJim Jagielski $onepropertyline = $localproperty . "\t" . $installer::globals::languageproperties{$localproperty} . "\n"; 523*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 524*b1cdbd2cSJim Jagielski } 525*b1cdbd2cSJim Jagielski 526*b1cdbd2cSJim Jagielski # Setting the info about multilingual installation in property "isMulti" 527*b1cdbd2cSJim Jagielski 528*b1cdbd2cSJim Jagielski my $propertyname = "isMulti"; 529*b1cdbd2cSJim Jagielski my $ismultivalue = 0; 530*b1cdbd2cSJim Jagielski 531*b1cdbd2cSJim Jagielski if ( $installer::globals::ismultilingual ) { $ismultivalue = 1; } 532*b1cdbd2cSJim Jagielski 533*b1cdbd2cSJim Jagielski my $onepropertyline = $propertyname . "\t" . $ismultivalue . "\n"; 534*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 535*b1cdbd2cSJim Jagielski 536*b1cdbd2cSJim Jagielski # setting the ARPPRODUCTICON 537*b1cdbd2cSJim Jagielski 538*b1cdbd2cSJim Jagielski if ($installer::globals::sofficeiconadded) # set in shortcut.pm 539*b1cdbd2cSJim Jagielski { 540*b1cdbd2cSJim Jagielski $onepropertyline = "ARPPRODUCTICON" . "\t" . "soffice.ico" . "\n"; 541*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 542*b1cdbd2cSJim Jagielski } 543*b1cdbd2cSJim Jagielski 544*b1cdbd2cSJim Jagielski # Saving the file 545*b1cdbd2cSJim Jagielski 546*b1cdbd2cSJim Jagielski installer::files::save_file($properyfilename ,$propertyfile); 547*b1cdbd2cSJim Jagielski my $infoline = "Added language content into idt file: $properyfilename\n"; 548*b1cdbd2cSJim Jagielski $installer::logger::Lang->print($infoline); 549*b1cdbd2cSJim Jagielski 550*b1cdbd2cSJim Jagielski} 551*b1cdbd2cSJim Jagielski 552*b1cdbd2cSJim Jagielski############################################################ 553*b1cdbd2cSJim Jagielski# Setting the ProductCode and the UpgradeCode 554*b1cdbd2cSJim Jagielski# into the Property table. Both have to be stored 555*b1cdbd2cSJim Jagielski# in the global file $installer::globals::codefilename 556*b1cdbd2cSJim Jagielski############################################################ 557*b1cdbd2cSJim Jagielski 558*b1cdbd2cSJim Jagielskisub set_codes_in_property_table 559*b1cdbd2cSJim Jagielski{ 560*b1cdbd2cSJim Jagielski my ($basedir) = @_; 561*b1cdbd2cSJim Jagielski 562*b1cdbd2cSJim Jagielski # Reading the property file 563*b1cdbd2cSJim Jagielski 564*b1cdbd2cSJim Jagielski my $properyfilename = $basedir . $installer::globals::separator . "Property.idt"; 565*b1cdbd2cSJim Jagielski my $propertyfile = installer::files::read_file($properyfilename); 566*b1cdbd2cSJim Jagielski 567*b1cdbd2cSJim Jagielski # Updating the values 568*b1cdbd2cSJim Jagielski 569*b1cdbd2cSJim Jagielski for ( my $i = 0; $i <= $#{$propertyfile}; $i++ ) 570*b1cdbd2cSJim Jagielski { 571*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bPRODUCTCODETEMPLATE\b/$installer::globals::productcode/; 572*b1cdbd2cSJim Jagielski ${$propertyfile}[$i] =~ s/\bUPGRADECODETEMPLATE\b/$installer::globals::upgradecode/; 573*b1cdbd2cSJim Jagielski } 574*b1cdbd2cSJim Jagielski 575*b1cdbd2cSJim Jagielski # Saving the property file 576*b1cdbd2cSJim Jagielski 577*b1cdbd2cSJim Jagielski installer::files::save_file($properyfilename ,$propertyfile); 578*b1cdbd2cSJim Jagielski my $infoline = "Added language content into idt file: $properyfilename\n"; 579*b1cdbd2cSJim Jagielski $installer::logger::Lang->print($infoline); 580*b1cdbd2cSJim Jagielski 581*b1cdbd2cSJim Jagielski} 582*b1cdbd2cSJim Jagielski 583*b1cdbd2cSJim Jagielski############################################################ 584*b1cdbd2cSJim Jagielski# Setting the variable REGKEYPRODPATH, that is used 585*b1cdbd2cSJim Jagielski# by the language packs. 586*b1cdbd2cSJim Jagielski############################################################ 587*b1cdbd2cSJim Jagielski 588*b1cdbd2cSJim Jagielskisub set_regkeyprodpath_in_property_table 589*b1cdbd2cSJim Jagielski{ 590*b1cdbd2cSJim Jagielski my ($basedir, , $allvariables) = @_; 591*b1cdbd2cSJim Jagielski 592*b1cdbd2cSJim Jagielski # Reading the property file 593*b1cdbd2cSJim Jagielski 594*b1cdbd2cSJim Jagielski my $properyfilename = $basedir . $installer::globals::separator . "Property.idt"; 595*b1cdbd2cSJim Jagielski my $propertyfile = installer::files::read_file($properyfilename); 596*b1cdbd2cSJim Jagielski 597*b1cdbd2cSJim Jagielski my $name = $allvariables->{'PRODUCTNAME'}; 598*b1cdbd2cSJim Jagielski my $version = $allvariables->{'PRODUCTVERSION'}; 599*b1cdbd2cSJim Jagielski 600*b1cdbd2cSJim Jagielski my $onepropertyline = "REGKEYPRODPATH" . "\t" . "Software" . "\\" . $installer::globals::manufacturer . "\\". $name; 601*b1cdbd2cSJim Jagielski 602*b1cdbd2cSJim Jagielski push(@{$propertyfile}, $onepropertyline); 603*b1cdbd2cSJim Jagielski 604*b1cdbd2cSJim Jagielski # Saving the property file 605*b1cdbd2cSJim Jagielski 606*b1cdbd2cSJim Jagielski installer::files::save_file($properyfilename ,$propertyfile); 607*b1cdbd2cSJim Jagielski my $infoline = "Added language content into idt file: $properyfilename\n"; 608*b1cdbd2cSJim Jagielski $installer::logger::Lang->print($infoline); 609*b1cdbd2cSJim Jagielski 610*b1cdbd2cSJim Jagielski} 611*b1cdbd2cSJim Jagielski 612*b1cdbd2cSJim Jagielski############################################################ 613*b1cdbd2cSJim Jagielski# Changing default for MS file type registration 614*b1cdbd2cSJim Jagielski# in Beta products. 615*b1cdbd2cSJim Jagielski############################################################ 616*b1cdbd2cSJim Jagielski 617*b1cdbd2cSJim Jagielskisub update_checkbox_table 618*b1cdbd2cSJim Jagielski{ 619*b1cdbd2cSJim Jagielski my ($basedir, $allvariables) = @_; 620*b1cdbd2cSJim Jagielski 621*b1cdbd2cSJim Jagielski if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" )) 622*b1cdbd2cSJim Jagielski { 623*b1cdbd2cSJim Jagielski my $checkboxfilename = $basedir . $installer::globals::separator . "CheckBox.idt"; 624*b1cdbd2cSJim Jagielski 625*b1cdbd2cSJim Jagielski if ( -f $checkboxfilename ) 626*b1cdbd2cSJim Jagielski { 627*b1cdbd2cSJim Jagielski my $checkboxfile = installer::files::read_file($checkboxfilename); 628*b1cdbd2cSJim Jagielski 629*b1cdbd2cSJim Jagielski my $checkboxline = "SELECT_WORD" . "\t" . "0" . "\n"; 630*b1cdbd2cSJim Jagielski push(@{$checkboxfile}, $checkboxline); 631*b1cdbd2cSJim Jagielski $checkboxline = "SELECT_EXCEL" . "\t" . "0" . "\n"; 632*b1cdbd2cSJim Jagielski push(@{$checkboxfile}, $checkboxline); 633*b1cdbd2cSJim Jagielski $checkboxline = "SELECT_POWERPOINT" . "\t" . "0" . "\n"; 634*b1cdbd2cSJim Jagielski push(@{$checkboxfile}, $checkboxline); 635*b1cdbd2cSJim Jagielski 636*b1cdbd2cSJim Jagielski # Saving the property file 637*b1cdbd2cSJim Jagielski installer::files::save_file($checkboxfilename ,$checkboxfile); 638*b1cdbd2cSJim Jagielski my $infoline = "Added ms file type defaults into idt file: $checkboxfilename\n"; 639*b1cdbd2cSJim Jagielski $installer::logger::Lang->print($infoline); 640*b1cdbd2cSJim Jagielski } 641*b1cdbd2cSJim Jagielski } 642*b1cdbd2cSJim Jagielski} 643*b1cdbd2cSJim Jagielski 644*b1cdbd2cSJim Jagielski1; 645