office-gobmx/solenv/bin/installoffice.pl

934 lines
25 KiB
Perl
Raw Normal View History

:
eval 'exec perl -wS $0 ${1+"$@"}'
if 0;
#*************************************************************************
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
# This file is part of OpenOffice.org.
#
# OpenOffice.org is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License version 3
# only, as published by the Free Software Foundation.
#
# OpenOffice.org is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License version 3 for more details
# (a copy is included in the LICENSE file that accompanied this code).
#
# You should have received a copy of the GNU Lesser General Public License
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#***********************************************************************/
use strict;
use File::Find;
use File::Path;
2008-09-30 02:44:27 -05:00
my $script = $0;
2008-09-30 02:44:27 -05:00
( our $script_name = $script ) =~ s/^.*\b(\w+)\.pl$/$1/;
( our $script_path = $script ) =~ s/$script_name.*//;
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
# Prototypes
sub installOffice();
our $debug = 0; # run without executing commands
our $is_command_infos = 1; # print command details before exec
our $show_NoMessage = 0;
our $show_Message = 1;
# special handling for cwschackapi
our $cwsCheckApi = 0;
# remove existant office installation
our $cleanup = 0;
# should the office be startable without user interaction
our $autorun = 0;
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
# should impress open documents without autopilot
our $autoimpress = 0;
# force openOffice.org installation if StarOffice is available
our $is_ooo = 0;
parseArgs();
our $is_admin_installation = 1;
our $gui = $ENV{GUI};
our $temp_path = $ENV{TEMP};
if (!defined($temp_path)) {
$temp_path = $ENV{TMP};
}
our $vcsid = $ENV{VCSID};
our $sversion_saved = 0;
our $FileURLPrefix = "file:///";
our $userinstalldir = "UserInstallation";
our $cygwin = "cygwin";
our $prefered_lang = "en-US";
our $global_instset_mask = "";
#$smoketest_install = $ENV{SMOKETESTINSTALLSET};
if (!defined($gui)) {
print "The workstamp is missing. Please use setsolar\n";
exit(1);
}
our $OfficeDestinationPath;
our $is_do_deinstall;
our $CygwinLineends;
our $WinLineends;
our $PS ;
our $NewPathSeparator ;
our $shell ;
our $shellSetEnvVar;
our $shellCommandSep;
our $cdCommand;
our $PERL ;
our $REMOVE_DIR ;
our $REMOVE_FILE ;
our $LIST_DIR ;
our $COPY_FILE ;
our $COPY_DIR ;
our $MK_DIR ;
our $RENAME_FILE ;
our $nul ;
our $RESPFILE;
our $SVERSION_INI ;
our $SOFFICEBIN ;
2008-09-30 02:44:27 -05:00
our $UNOPKGBIN;
our $bootstrapini ;
our $bootstrapiniTemp ;
our $packpackage ;
our $user;
2009-09-07 08:35:07 -05:00
if ($gui eq "WNT") {
$gui = $cygwin;
}
if ($gui eq "WNT") {
$user = $ENV{USERNAME};
$PS = '\\';
$NewPathSeparator = ';';
$shell = "$ENV{COMSPEC} -c ";
$shellSetEnvVar = "set ";
$shellCommandSep = "& ";
$cdCommand="cd /d ";
$PERL = "$shell $ENV{PERL}";
$REMOVE_DIR = "$shell del /qsxyz";
$REMOVE_FILE = "$shell del /q";
$LIST_DIR = "$shell ls";
$COPY_FILE = "$shell copy";
$COPY_DIR = "$shell copy /s";
$MK_DIR = "md";
$RENAME_FILE = "ren";
$nul = '> NUL';
$RESPFILE="response_fat_wnt";
$SVERSION_INI = $ENV{USERPROFILE} . $PS . "Anwendungsdaten" . $PS . "sversion.ini";
$SOFFICEBIN = "soffice.exe";
$bootstrapini = "bootstrap.ini";
2008-09-30 02:44:27 -05:00
$UNOPKGBIN="unopkg.exe";
$bootstrapiniTemp = $bootstrapini . "_";
$packpackage = "msi";
if (!defined($temp_path)) {
print "temp value is missing. Please set temp-variable\n";
exit(1);
}
}
elsif ($gui eq "UNX") {
$user = $ENV{USER};
$is_do_deinstall = 0;
$PS = '/';
$shell = "/bin/sh -c ";
$shellSetEnvVar = "export ";
$shellCommandSep = ";";
$cdCommand="cd ";
$NewPathSeparator = ':';
$shell = "";
$PERL = "$ENV{PERL}";
$REMOVE_DIR = "rm -rf";
$REMOVE_FILE = "rm -f";
$LIST_DIR = "ls";
$COPY_FILE = "cp -f";
$COPY_DIR = "cp -rf";
$MK_DIR = "mkdir";
$RENAME_FILE = "mv";
$nul = '> /dev/null';
$RESPFILE="response_fat_unx";
$SVERSION_INI = $ENV{HOME} . $PS . ".sversionrc";
$SOFFICEBIN = "soffice";
$bootstrapini = "bootstraprc";
2008-09-30 02:44:27 -05:00
$UNOPKGBIN="unopkg";
$bootstrapiniTemp = $bootstrapini . "_";
$packpackage = $ENV{PKGFORMAT};
if (!defined($temp_path)) {
$temp_path="/tmp";
if (! -e $temp_path){
print "temp value is missing. Please set temp-variable\n";
exit(1);
}
}
}
elsif ($gui eq $cygwin) {
$PS = '/';
$NewPathSeparator = ':';
$shell = "/bin/sh -c ";
$shellSetEnvVar = "export ";
$shellCommandSep = ";";
$cdCommand = "cd ";
$PERL = "$ENV{PERL}";
$REMOVE_DIR = "rm -rf";
$REMOVE_FILE = "rm -f";
$LIST_DIR = "ls";
$COPY_FILE = "cp -f";
$COPY_DIR = "cp -rf";
$MK_DIR = "mkdir";
$RENAME_FILE = "mv";
$nul = '> /dev/null';
$RESPFILE="response_fat_wnt";
$SVERSION_INI = $ENV{USERPROFILE} . $PS . "Anwendungsdaten" . $PS . "sversion.ini";
$SOFFICEBIN = "soffice";
$bootstrapini = "bootstrap.ini";
$bootstrapiniTemp = $bootstrapini . "_";
$CygwinLineends = $/;
$WinLineends = "\r\n";
&SetWinLineends();
$packpackage = "msi";
if (!defined($temp_path)) {
$temp_path="/tmp";
if (! -e $temp_path){
print "temp value is missing. Please set temp-variable\n";
exit(1);
}
}
}
else {
print_error ("not supported system\n",1);
}
my %PRODUCT1 = (Name => "StarOffice", instset => "instset_native");
my %PRODUCT2 = (Name => "OpenOffice", instset => "instsetoo_native");
our @PRODUCT = (\%PRODUCT1, \%PRODUCT2);
our $SHIP = defined $ENV{SHIPDRIVE} ? $ENV{SHIPDRIVE} . $PS : "shipdrive_not_set";
if (defined($ENV{CWS_WORK_STAMP})){
print " found CWS\n";
}
elsif (isLocalEnv()){
print " local environment\n";
}
elsif (defined $ENV{SHIPDRIVE}) {
print " master version\n";
}
elsif (defined $ENV{SOLARSRC}) {
print " OpenOffice master version\n";
}
else {
print "Could not determine environment. Exit\n";
exit 1
}
our @error_messages = ( '',
'lock flag for pkgadd still exist. Installation not possible!',
'Error during installation!',
'Error: patching configuration failed!',
'Error: starting office failed or office crashed!',
'Error during testing',
'can not copy extension',
'Error in setup log',
'installationsset is not complete',
'can not copy all basic scripts',
'can not patch bottstrapini',
'msiexec failed. Maybe you have got an installed version',
'deinstallation is incomplete'
);
my $success = 0;
$success = installOffice();
if ($success != 0){
exit(1);
}
exit(0);
sub installOffice(){
# <DISABLED>
# my ($officeVersion, $instsetPath)= getInstset();
# print "OFFICEVERSION:$officeVersion INSTSETPATH:$instsetPath\n" if $debug;
# my $sourcePath=$instsetPath.$PS.$officeVersion;
# </DISABLED>
#
# currently this installer does not install an office, it do pack a runnable office.
# Therefore we do not need to search for an instSet
my $sourcePath="dummy";
my $officeVersion="dummy";
my $destinationPath = getDestinationPath($officeVersion);
print "destinationPath: $destinationPath\n" if $debug;
removeOffice($destinationPath);
mkdirs($destinationPath);
my $installCommand = getInstallCommand($sourcePath, $destinationPath, $officeVersion);
print "installCommand: $installCommand\n" if $debug;
my $success=0;
$success = system($installCommand);
print "installoofice.pl::installoffice::success $success\n" if ($debug);
if ($autorun) {
makeAutoRun($destinationPath);
}
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
if ($autoimpress) {
makeAutoImpress($destinationPath);
}
return $success;
}
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
sub makeAutoImpress(){
my $destinationPath = shift;
if (patchXCU ($destinationPath, $script_path.$script_name."_impress.oxt") != 0) {
print_error("could not register ".$script_path.$script_name."_impress.oxt", "1");
}
return 0;
}
sub makeAutoRun(){
my $destinationPath = shift;
patchBootstraprc($destinationPath);
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
if (patchXCU ($destinationPath, $script_path.$script_name.".oxt") != 0) {
print_error("could not register ".$script_path.$script_name.".oxt", "1");
}
return 0;
}
sub patchBootstraprc(){
my $destinationPath = shift;
my $bootstraprc="";
find sub { $bootstraprc=$File::Find::name if -e _ && /$bootstrapini$/ }, $destinationPath;
print_error("could not find $bootstrapini", "1") if ( ! -e $bootstraprc );
open(BSRC, "<$bootstraprc") or errorFromOpen(" for reading " .$bootstraprc);
my @content = <BSRC>;
close(BSRC);
my @newContent;
foreach(@content) {
if ( /UserInstallation=./ ) {
push(@newContent, "UserInstallation=\$ORIGIN/../UserInstallation\n");
}
else {
push(@newContent,$_);
}
}
chmod(0755,$bootstraprc);
open OUTFILE, ">$bootstraprc" or return errorFromOpen (" for writing " . $bootstraprc);
print OUTFILE @newContent;
close OUTFILE;
}
sub patchXCU(){
my $destinationPath = shift;
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
my $oxt = shift;
CWS-TOOLING: integrate CWS qadev34 2008-11-24 12:04:37 +0100 cn r264220 : #i96037 bugfix: remove superfluous exclamation mark 2008-11-20 20:52:21 +0100 cn r264100 : #i95964 fixes for cygwin 2008-11-20 12:10:41 +0100 cn r264040 : #i95964 replacesment for cwsquery modules 2008-11-10 10:29:48 +0100 cn r263511 : #i96037 register installoffice.oxt 2008-11-07 15:44:58 +0100 cn r263423 : #i95964# changes for 'cwstouched' wihch is a replacemant for 'cwsquery modules' 2008-10-31 14:04:47 +0100 cn r262866 : #i95303# add XDEBUG variable 2008-10-31 14:03:39 +0100 cn r262865 : #i95610# update lists 2008-10-31 09:47:27 +0100 cn r262855 : #i95303# bugfix 2008-10-31 09:47:06 +0100 cn r262854 : #i95303# bugfix 2008-10-30 21:42:14 +0100 cn r262837 : #i95204 remove -OOO_EnvSet parameter 2008-10-30 21:33:18 +0100 cn r262836 : #i95304 add -enableautomation as soffice parameter 2008-10-30 10:20:24 +0100 cn r262822 : #i95610 update lists 2008-10-27 22:00:00 +0100 cn r262691 : #i95513#: add support for -runnerini as aditional ini file 2008-10-27 21:35:17 +0100 cn r262690 : #i95513# use -runnerini instead of -ini 2008-10-23 13:41:32 +0200 cn r262621 : #i95303# changes to run cwscheckapi in cygwin environment 2008-10-22 10:18:36 +0200 cn r262581 : #i95304# disable QuckStarter while trying to dispose the office 2008-10-22 09:59:39 +0200 cn r262580 : #i95303# add cygwin related stuff 2008-10-22 09:59:10 +0200 cn r262579 : #i95303# add cygwin related stuff 2008-10-22 09:57:40 +0200 cn r262578 : #i95303# add property CYGWIN
2008-11-26 06:04:07 -06:00
my $unopkg="";
CWS-TOOLING: integrate CWS qadev34 2008-11-24 12:04:37 +0100 cn r264220 : #i96037 bugfix: remove superfluous exclamation mark 2008-11-20 20:52:21 +0100 cn r264100 : #i95964 fixes for cygwin 2008-11-20 12:10:41 +0100 cn r264040 : #i95964 replacesment for cwsquery modules 2008-11-10 10:29:48 +0100 cn r263511 : #i96037 register installoffice.oxt 2008-11-07 15:44:58 +0100 cn r263423 : #i95964# changes for 'cwstouched' wihch is a replacemant for 'cwsquery modules' 2008-10-31 14:04:47 +0100 cn r262866 : #i95303# add XDEBUG variable 2008-10-31 14:03:39 +0100 cn r262865 : #i95610# update lists 2008-10-31 09:47:27 +0100 cn r262855 : #i95303# bugfix 2008-10-31 09:47:06 +0100 cn r262854 : #i95303# bugfix 2008-10-30 21:42:14 +0100 cn r262837 : #i95204 remove -OOO_EnvSet parameter 2008-10-30 21:33:18 +0100 cn r262836 : #i95304 add -enableautomation as soffice parameter 2008-10-30 10:20:24 +0100 cn r262822 : #i95610 update lists 2008-10-27 22:00:00 +0100 cn r262691 : #i95513#: add support for -runnerini as aditional ini file 2008-10-27 21:35:17 +0100 cn r262690 : #i95513# use -runnerini instead of -ini 2008-10-23 13:41:32 +0200 cn r262621 : #i95303# changes to run cwscheckapi in cygwin environment 2008-10-22 10:18:36 +0200 cn r262581 : #i95304# disable QuckStarter while trying to dispose the office 2008-10-22 09:59:39 +0200 cn r262580 : #i95303# add cygwin related stuff 2008-10-22 09:59:10 +0200 cn r262579 : #i95303# add cygwin related stuff 2008-10-22 09:57:40 +0200 cn r262578 : #i95303# add property CYGWIN
2008-11-26 06:04:07 -06:00
find sub { $unopkg=$File::Find::name if -e _ && /$UNOPKGBIN$/ }, $destinationPath;
CWS-TOOLING: integrate CWS qadev34 2008-11-24 12:04:37 +0100 cn r264220 : #i96037 bugfix: remove superfluous exclamation mark 2008-11-20 20:52:21 +0100 cn r264100 : #i95964 fixes for cygwin 2008-11-20 12:10:41 +0100 cn r264040 : #i95964 replacesment for cwsquery modules 2008-11-10 10:29:48 +0100 cn r263511 : #i96037 register installoffice.oxt 2008-11-07 15:44:58 +0100 cn r263423 : #i95964# changes for 'cwstouched' wihch is a replacemant for 'cwsquery modules' 2008-10-31 14:04:47 +0100 cn r262866 : #i95303# add XDEBUG variable 2008-10-31 14:03:39 +0100 cn r262865 : #i95610# update lists 2008-10-31 09:47:27 +0100 cn r262855 : #i95303# bugfix 2008-10-31 09:47:06 +0100 cn r262854 : #i95303# bugfix 2008-10-30 21:42:14 +0100 cn r262837 : #i95204 remove -OOO_EnvSet parameter 2008-10-30 21:33:18 +0100 cn r262836 : #i95304 add -enableautomation as soffice parameter 2008-10-30 10:20:24 +0100 cn r262822 : #i95610 update lists 2008-10-27 22:00:00 +0100 cn r262691 : #i95513#: add support for -runnerini as aditional ini file 2008-10-27 21:35:17 +0100 cn r262690 : #i95513# use -runnerini instead of -ini 2008-10-23 13:41:32 +0200 cn r262621 : #i95303# changes to run cwscheckapi in cygwin environment 2008-10-22 10:18:36 +0200 cn r262581 : #i95304# disable QuckStarter while trying to dispose the office 2008-10-22 09:59:39 +0200 cn r262580 : #i95303# add cygwin related stuff 2008-10-22 09:59:10 +0200 cn r262579 : #i95303# add cygwin related stuff 2008-10-22 09:57:40 +0200 cn r262578 : #i95303# add property CYGWIN
2008-11-26 06:04:07 -06:00
print_error("could not find $UNOPKGBIN", "1") if ( !-e $unopkg );
print "unopkg: '$unopkg'\n" if $debug;
CWS-TOOLING: integrate CWS qadev34 2008-11-24 12:04:37 +0100 cn r264220 : #i96037 bugfix: remove superfluous exclamation mark 2008-11-20 20:52:21 +0100 cn r264100 : #i95964 fixes for cygwin 2008-11-20 12:10:41 +0100 cn r264040 : #i95964 replacesment for cwsquery modules 2008-11-10 10:29:48 +0100 cn r263511 : #i96037 register installoffice.oxt 2008-11-07 15:44:58 +0100 cn r263423 : #i95964# changes for 'cwstouched' wihch is a replacemant for 'cwsquery modules' 2008-10-31 14:04:47 +0100 cn r262866 : #i95303# add XDEBUG variable 2008-10-31 14:03:39 +0100 cn r262865 : #i95610# update lists 2008-10-31 09:47:27 +0100 cn r262855 : #i95303# bugfix 2008-10-31 09:47:06 +0100 cn r262854 : #i95303# bugfix 2008-10-30 21:42:14 +0100 cn r262837 : #i95204 remove -OOO_EnvSet parameter 2008-10-30 21:33:18 +0100 cn r262836 : #i95304 add -enableautomation as soffice parameter 2008-10-30 10:20:24 +0100 cn r262822 : #i95610 update lists 2008-10-27 22:00:00 +0100 cn r262691 : #i95513#: add support for -runnerini as aditional ini file 2008-10-27 21:35:17 +0100 cn r262690 : #i95513# use -runnerini instead of -ini 2008-10-23 13:41:32 +0200 cn r262621 : #i95303# changes to run cwscheckapi in cygwin environment 2008-10-22 10:18:36 +0200 cn r262581 : #i95304# disable QuckStarter while trying to dispose the office 2008-10-22 09:59:39 +0200 cn r262580 : #i95303# add cygwin related stuff 2008-10-22 09:59:10 +0200 cn r262579 : #i95303# add cygwin related stuff 2008-10-22 09:57:40 +0200 cn r262578 : #i95303# add property CYGWIN
2008-11-26 06:04:07 -06:00
if ($gui eq "WNT") {
$unopkg = "\"$unopkg\"";
}
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
my $unopkgCommand = "$unopkg add $oxt";
print "register oxt file ...\n" if $debug;
CWS-TOOLING: integrate CWS qadev34 2008-11-24 12:04:37 +0100 cn r264220 : #i96037 bugfix: remove superfluous exclamation mark 2008-11-20 20:52:21 +0100 cn r264100 : #i95964 fixes for cygwin 2008-11-20 12:10:41 +0100 cn r264040 : #i95964 replacesment for cwsquery modules 2008-11-10 10:29:48 +0100 cn r263511 : #i96037 register installoffice.oxt 2008-11-07 15:44:58 +0100 cn r263423 : #i95964# changes for 'cwstouched' wihch is a replacemant for 'cwsquery modules' 2008-10-31 14:04:47 +0100 cn r262866 : #i95303# add XDEBUG variable 2008-10-31 14:03:39 +0100 cn r262865 : #i95610# update lists 2008-10-31 09:47:27 +0100 cn r262855 : #i95303# bugfix 2008-10-31 09:47:06 +0100 cn r262854 : #i95303# bugfix 2008-10-30 21:42:14 +0100 cn r262837 : #i95204 remove -OOO_EnvSet parameter 2008-10-30 21:33:18 +0100 cn r262836 : #i95304 add -enableautomation as soffice parameter 2008-10-30 10:20:24 +0100 cn r262822 : #i95610 update lists 2008-10-27 22:00:00 +0100 cn r262691 : #i95513#: add support for -runnerini as aditional ini file 2008-10-27 21:35:17 +0100 cn r262690 : #i95513# use -runnerini instead of -ini 2008-10-23 13:41:32 +0200 cn r262621 : #i95303# changes to run cwscheckapi in cygwin environment 2008-10-22 10:18:36 +0200 cn r262581 : #i95304# disable QuckStarter while trying to dispose the office 2008-10-22 09:59:39 +0200 cn r262580 : #i95303# add cygwin related stuff 2008-10-22 09:59:10 +0200 cn r262579 : #i95303# add cygwin related stuff 2008-10-22 09:57:40 +0200 cn r262578 : #i95303# add property CYGWIN
2008-11-26 06:04:07 -06:00
print "call $unopkgCommand\n" if $debug;
my $success=0;
$success = system($unopkgCommand);
return $success;
}
sub writeFile(){
my $fileName = shift;
my @content = @_;
open OUTFILE, ">$fileName" or return errorFromOpen (" for writing " . $fileName);
my $lf;
if ($packpackage eq "msi"){
$lf = "\r\n";
} else {
$lf = "\n";
}
my $line;
foreach $line(@content) {
print "LINE: $line\n" if $debug;
print OUTFILE $line.$lf;
}
close(OUTFILE);
return 0;
}
sub mkdirs(){
my $directory = shift;
my $splitter=$PS;
if ( $PS eq "\\" ){
$splitter="\\\\";
}
CWS-TOOLING: integrate CWS qadev34 2008-11-24 12:04:37 +0100 cn r264220 : #i96037 bugfix: remove superfluous exclamation mark 2008-11-20 20:52:21 +0100 cn r264100 : #i95964 fixes for cygwin 2008-11-20 12:10:41 +0100 cn r264040 : #i95964 replacesment for cwsquery modules 2008-11-10 10:29:48 +0100 cn r263511 : #i96037 register installoffice.oxt 2008-11-07 15:44:58 +0100 cn r263423 : #i95964# changes for 'cwstouched' wihch is a replacemant for 'cwsquery modules' 2008-10-31 14:04:47 +0100 cn r262866 : #i95303# add XDEBUG variable 2008-10-31 14:03:39 +0100 cn r262865 : #i95610# update lists 2008-10-31 09:47:27 +0100 cn r262855 : #i95303# bugfix 2008-10-31 09:47:06 +0100 cn r262854 : #i95303# bugfix 2008-10-30 21:42:14 +0100 cn r262837 : #i95204 remove -OOO_EnvSet parameter 2008-10-30 21:33:18 +0100 cn r262836 : #i95304 add -enableautomation as soffice parameter 2008-10-30 10:20:24 +0100 cn r262822 : #i95610 update lists 2008-10-27 22:00:00 +0100 cn r262691 : #i95513#: add support for -runnerini as aditional ini file 2008-10-27 21:35:17 +0100 cn r262690 : #i95513# use -runnerini instead of -ini 2008-10-23 13:41:32 +0200 cn r262621 : #i95303# changes to run cwscheckapi in cygwin environment 2008-10-22 10:18:36 +0200 cn r262581 : #i95304# disable QuckStarter while trying to dispose the office 2008-10-22 09:59:39 +0200 cn r262580 : #i95303# add cygwin related stuff 2008-10-22 09:59:10 +0200 cn r262579 : #i95303# add cygwin related stuff 2008-10-22 09:57:40 +0200 cn r262578 : #i95303# add property CYGWIN
2008-11-26 06:04:07 -06:00
my @aFolder=split($splitter,$directory);
my $dir;
my $folder;
foreach $folder(@aFolder){
if ( (! defined($dir)) && ($PS eq "\\")){
$dir=$folder;
} else {
$dir=$dir.$PS.$folder;
}
if (! -e $dir ){
print "try to create $dir\n" if $debug;
mkdir($dir);
}
}
}
sub removeOffice(){
my $destPath=shift;
if ($cleanup){
print "remove old office installation...\n";
print "remove $destPath...\n" if $debug;
rmtree($destPath);
}
}
sub getInstallCommand() {
my $command;
$command = getDmakeInstalledCommand(@_);
# if ($packpackage eq "msi"){
# $command = getWindowsInallCommand(@_);
# } else {
# $command = getUnixInstallCommand(@_);
# }
return $command;
}
sub getDmakeInstalledCommand(){
my ($sourcePath, $destPath, $officeVersion) = @_;
my $RootDir=$ENV{SRC_ROOT};
my $ProductName;
my $instset;
# check if instset_native could be found
foreach my $pointer (@PRODUCT) {
$instset = $pointer->{'instset'};
$ProductName = $pointer->{'Name'};
my $instsetDir = "$RootDir$PS$instset";
print "instsetDir: $instsetDir \n" if $debug;
last if ($is_ooo && $ProductName eq "OpenOffice");
last if ( ! $is_ooo && -e "$instsetDir");
}
print "Product: $ProductName\n" if $debug;;
my $dmakeTarget=lc($ProductName)."_en-US";
my $utilFolder = getInstsetUtilFolder($instset, $destPath, $RootDir);
my $dmakeCommand = " $cdCommand \"$utilFolder\" $shellCommandSep dmake $dmakeTarget PKGFORMAT=installed -vt";
my $envset;
if ($gui eq "WNT") {
$envset="set LOCALINSTALLDIR=$destPath & set LOCALUNPACKDIR=$destPath &";
}else {
$envset="LOCALINSTALLDIR=$destPath ; LOCALUNPACKDIR=$destPath ; export LOCALINSTALLDIR ; export LOCALUNPACKDIR ; ";
}
#my $command=$envset.$dmakeCommand;
my $command=$dmakeCommand;
return $command;
}
sub getInstsetUtilFolder(){
my $instset = shift;
my $destPath = shift;
my $RootDir = shift;
my $instsetFolder = $RootDir.$PS.$instset;
my $utilFolder="";
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
if( open(DATEI, ">$instsetFolder".$PS."touch"))
{
close(DATEI);
unlink($instsetFolder.$PS."touch");
print "$instsetFolder is writable \n" if $debug;
$utilFolder = $RootDir.$PS.$instset.$PS."util";
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
}
else
{
print "$instsetFolder is NOT writable \n" if $debug;
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
print "copy $instset to $destPath$PS..\n" if $debug;
my $prjPath=$destPath.$PS."..";
my $command = "$ENV{COPYPRJ} -x $instset $prjPath";
print $command if $debug;
system($command);
$utilFolder=$prjPath.$PS.$ENV{WORK_STAMP}.$PS.$instset.$PS."util";
}
print "utilFolder: $utilFolder\n" if $debug;
return $utilFolder;
}
# sub getInstsetFomInstsetNative(){
# my (@DirArray, $TestDir1, $TestDir2);
# my $instset;
# my $ProductName;
# my $instDir="";
# my $lang;
# my $RootDir=$ENV{SRC_ROOT};
# my $StandDir = $ENV{SOLARSRC} . $PS;
# #$RootDir=~s/\w+$//;
# foreach my $pointer (@PRODUCT) {
# $instset = $pointer->{'instset'};
# $ProductName = $pointer->{'Name'};
# @DirArray=();
# $TestDir1 = "$RootDir$PS$instset$PS$ENV{INPATH}$PS$ProductName$PS$packpackage$PS" . "install$PS";
# $TestDir2 = "$StandDir$instset$PS$ENV{INPATH}$PS$ProductName$PS$packpackage$PS" . "install$PS";
# print "TestDir1: $TestDir1 \n";
# print "TestDir2: $TestDir2 \n";
# if (-e "$TestDir1") {
# $instDir= $TestDir1;
# }
# elsif (-e "$TestDir2") {
# $instDir="$TestDir2";
# }
# if ($instDir eq "") {
# next;
# }
# getSubDirs ("$instDir", \@DirArray);
# $lang = findSubDir (\@DirArray);
# print "Lang-Sel: $lang\n" if $is_command_infos;
# ;
# if (($instDir ne "") and (-e $instDir)) {
# return ($lang, $instDir, $ProductName, $instset);
# }
# }
# print_error ("no installationset found\n",2);
# }
sub getWindowsInallCommand(){
my ($sourcePath, $destPath) = @_;
my $mask = "\\.msi\$";
#my $DirArray;
my @DirArray = ();
getSubFiles ("$sourcePath", \@DirArray, $mask);
if ($#DirArray == -1) {
print_error ("Installationset in $sourcePath is incomplete", 2);
}
if ($#DirArray >= 1) {
print_error ("Installationset in $sourcePath hat too many msi-files", 2);
print "found the following msi-files: @DirArray\n" if $debug;
}
my $command = "msiexec.exe /a $sourcePath$PS$DirArray[0] -qn ALLUSERS=2 INSTALLLOCATION=$destPath";
return $command;
}
sub getUnixInstallCommand() {
my ($sourcePath, $destPath, $officeVersion) = @_;
my $userland="unknown";
if (defined($ENV{CWS_WORK_STAMP})){
print " found CWS\n";
$userland=$ENV{SOLARVERSION}.$PS.$ENV{INPATH}.$PS."bin".$ENV{UPDMINOREXT}.$PS."userscripts".$PS."install";
}
elsif (isLocalEnv()){
print " local environment\n";
}
elsif (defined $ENV{SHIPDRIVE}) {
print " master version\n";
$userland=$ENV{SHIPDRIVE}.$PS.$ENV{INPATH}.$PS."UserScripts".$PS.$ENV{PKGFORMAT}.$PS.$officeVersion.$PS."install";
}
elsif (defined $ENV{SOLARSRC}) {
print " OpenOffice master version\n";
print " command to install Office not implementet yet\n";
exit(1);
}
else {
print "Could not determine environment. Exit\n";
exit(1);
}
return "$userland $sourcePath $destPath";
;
}
sub getDestinationPath {
# if (defined $ENV{SOLARROOT}){
# # seems to be a Sun environment
# if (! -e $OfficeDestinationPath){
# }
# }
my $officeVersion = shift;
my $officename;
if (defined($ENV{LOCALINSTALLDIR})){
$OfficeDestinationPath=$ENV{LOCALINSTALLDIR};
if(index($OfficeDestinationPath," ") >= 0) {
my $msg="You environemt variable '\$LOCALINSTALLDIR=$OfficeDestinationPath' contains white spaces.";
$msg = $msg." This is not allowed!";
print_error($msg, "1");
}
}
if (!defined($OfficeDestinationPath)){
$officename = $officeVersion;
if (defined($ENV{CWS_WORK_STAMP})){
$officename=$ENV{CWS_WORK_STAMP};
}
$OfficeDestinationPath=$temp_path.$PS.$user.$PS."office".$PS.$officename;
}
return $OfficeDestinationPath;
}
# sub getInstset {
# my ($INSTSET, $NEWINSTSET, $ProductName);
# if (defined ($ENV{EPM}) && ($ENV{EPM} eq 'NO') && ($gui eq "UNX")) { # we do the install ourselves ...
# return ();
# }
# print "get Instset\n" if $debug;
# $NEWINSTSET = "";
# if (!isLocalEnv() and !defined($ENV{CWS_WORK_STAMP}) and (-e $SHIP) and ($gui ne $cygwin)) {
# ($NEWINSTSET, $INSTSET) = getSetFromServer();
# }
# else {
# ($NEWINSTSET, $INSTSET, $ProductName) = getInstsetFomInstsetNative();
# }
# return ($NEWINSTSET, $INSTSET);
# }
# sub getSetFromServer {
# my ($DirName, $SetupFullPath);
# my $workspace = $ENV{WORK_STAMP};
# my $platform = $ENV{INPATH};
# my $latestset;
# my (@DirArray, $mask, $buildid, $milestone);
# foreach my $pointer (@PRODUCT) {
# my $ProductName = $pointer->{'Name'};
# print "##PRODUCT: $ProductName\n";
# my $SetupFullPath = "$SHIP$ENV{INPATH}$PS$ProductName$PS$packpackage$PS";
# if ( ! ( $workspace && $platform ) ) {
# print_error ( "Error: environment not set correctly.", 1);
# }
# # get latest broadcastet milestone and pack number
# ($milestone, $buildid) = get_milestoneAndBuildID( $workspace, $platform );
# if (defined $ENV{CWS_WORK_STAMP}) {
# # /unxlngi6.pro/StarOffice/rpm/ SRC680_m245_native_packed-2_en-US.9267/
# $mask = "^$workspace" . "_" . $milestone . "_native_packed-(\\d+)_en-US\\.$buildid";
# } else {
# # cws03/os110/OOH680/src.m4/instset_native/unxlngi6.pro/StarOffice/rpm install/en-US/RPMS
# $mask = "^$workspace" . "_" . $milestone . "_native_packed-(\\d+)_en-US\\.$buildid";
# }
# print "MASK: $mask\n";
# $global_instset_mask = $mask;
# getSubFiles ($SetupFullPath, \@DirArray, $mask);
# @DirArray = sort InstsetSort @DirArray;
# if ($#DirArray > -1) {
# $latestset = $DirArray [$#DirArray];
# $DirName = $latestset;
# }
# else {
# print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2);
# }
# print "Latest install sets: $latestset\n" if $debug;
# print "$DirName\t $SetupFullPath\n" if $debug;
# # compare with file system
# # at the moment just the existence is checked. For security reasons it might be
# # better to additionally check whether there are newer sets (this must not happen,
# # but who knows ...)
# if ( -d $SetupFullPath ) {
# # if found => return and don't continue searching
# # this is usefull to set a priority to find installsets in @PRODUCT
# # first comes, first wins
# return ($DirName, $SetupFullPath);
# }
# }
# # compare with file system
# # at the moment just the existence is checked. For security reasons it might be
# # better to additionally check whether there are newer sets (this must not happen,
# # but who knows ...)
# if ( -d $SetupFullPath ) {
# return ($DirName, $SetupFullPath);
# } else {
# print_error ("Cannot find install set $SetupFullPath for $workspace $milestone", 2);
# }
# }
# sub get_milestoneAndBuildID {
# my ( $ws, $pf ) = @_;
# my ($milestone, $buildid, $upd, $path, $updext, $line);
# if ( $ws =~ /^\D+(\d+)$/) {
# $upd = $1;
# }
# if (defined ($ENV{UPDMINOREXT})) {
# $updext = $ENV{UPDMINOREXT};
# }
# else {
# $updext = "";
# }
# $path = "$ENV{SOLARVER}$PS$pf$PS" . "inc$updext$PS$upd" . "minor.mk";
# print "$path\n" if $debug;
# local *MINORMK;
# if ( !open(MINORMK,$path) ) {
# print "FATAL: can't open $path\n";
# return (0,0);
# }
# if (!eof(MINORMK)) {
# while ($line = <MINORMK>) {
# chomp($line);
# if ( $line =~ /LAST_MINOR=(\w+)/ ) {
# $milestone = $1;
# }
# elsif ( $line =~ /BUILD=(\d+)/ ) {
# $buildid = $1;
# }
# }
# close(MINORMK);
# }
# if (!defined($milestone)) {
# print_error ("Milestone ist not defined!", 2);
# }
# if (!defined($buildid)) {
# print_error ("Build-ID ist not defined!", 2);
# }
# return ($milestone, $buildid);
# }
sub print_error
{
my $message = shift;
my $error_code = shift;
print STDERR "ERROR: $message\n";
doExit($error_code);
}
sub getSubFiles {
my ($startDir, $DirArray_ref, $mask) = @_;
my ($dir);
local *DIR;
opendir(DIR,"$startDir");
while($dir = readdir(DIR)) {
if (($dir =~ /\.$/) or ($dir !~ /$mask/)) {
next;
}
push (@{$DirArray_ref}, "$dir");
}
closedir(DIR);
}
sub InstsetSort {
my ($a1, $b1);
if ($a =~ /$global_instset_mask/) {
$a1 = $1;
}
if ($b =~ /$global_instset_mask/) {
$b1 = $1;
}
$a1 <=> $b1;
}
sub isLocalEnv {
my $returnvalue = 0;
if (defined ($ENV{SOL_TMP}) && defined ($ENV{SOLARVERSION})) {
my $mask = $ENV{SOL_TMP};
$mask =~ s/\\/\\\\/;
print "Mask: $mask\n" if $debug;
if ($ENV{SOLARVERSION}=~ /$mask/) {
$returnvalue = 1;
}
}
return $returnvalue;
}
sub getSubDirs {
my ($startDir, $DirArray_ref) = @_;
my ($dir);
opendir(DIR,"$startDir");
while($dir = readdir(DIR)) {
if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) {
push (@{$DirArray_ref}, "$dir");
}
}
closedir(DIR);
}
sub findSubDir {
my ($DirArray_ref) = @_;
my (@sortedArray, $dir, $instdir);
@sortedArray = sort langsort @{$DirArray_ref};
print "Langs: @sortedArray\n" if $is_command_infos;
foreach $dir (@sortedArray) {
if ($dir =~ /log$/) {
next;
}
$instdir = "$dir";
return $instdir;
}
return "";
}
sub langsort {
if ($a eq $prefered_lang) {
return -1;
}
elsif ($b eq $prefered_lang) {
return 1;
}
else {
$a cmp $b;
}
}
sub doExit
{
my $error_code = shift;
# if ($sversion_saved) {
# restore_sversion ($SVERSION_INI);
# }
# if ($is_remove_on_error) {
# if ($is_do_deinstall) {
# deinstallInstallation ($installpath);
# }
# removeInstallation($installpath);
# }
# else {
# print_notRemoved ($installpath);
# }
if ( $error_code ) {
print STDERR "\nFAILURE: $script_name aborted.\n";
}
exit($error_code);
}
sub parseArgs
{
for (my $i=0; $i<=$#ARGV; $i++) {
if ( $ARGV[$i] =~ /^-cwscheckapi$/ ) {
my $value = $ARGV[++$i];
if ($value =~ /^true$/ || ($value =~ /^1$/) ) {
$cwsCheckApi = 1;
$cleanup = 1;
$autorun = 1;
};
}
if ( $ARGV[$i] =~ /^-dest$/ ) {
$OfficeDestinationPath = $ARGV[++$i];
}
if ( $ARGV[$i] =~ /^-cleanup$/ ) {
my $value = $ARGV[++$i];
if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $cleanup = 1 };
}
if ( $ARGV[$i] =~ /^-autorun$/ ) {
my $value = $ARGV[++$i];
if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $autorun = 1 };
}
CWS-TOOLING: integrate CWS perftest08 2009-07-02 10:03:16 +0200 lla r273621 : #159516# support systems with no JAVA_HOME 2009-07-02 10:00:25 +0200 lla r273620 : #159516# if path is null this not an error 2009-07-01 14:36:05 +0200 lla r273583 : #159516# add check for wrong cygwin path 2009-06-22 13:18:14 +0200 lla r273223 : #159516# add PipeConnectionString 2009-06-18 21:44:59 +0200 lla r273137 : #159516# cleanups 2009-06-18 21:44:17 +0200 lla r273136 : #159516# handle null 2009-06-18 21:42:56 +0200 lla r273135 : #159516# add getElementCount() function 2009-06-15 10:40:05 +0200 lla r272966 : CWS-TOOLING: rebase CWS perftest08 to trunk@272827 (milestone: DEV300:m50) 2009-06-02 09:06:22 +0200 lla r272480 : CWS-TOOLING: rebase CWS perftest08 to trunk@272291 (milestone: DEV300:m49) 2009-05-08 11:40:22 +0200 mib r271710 : #159717#: File name info for performance test (added void to hasLogFile() parameter list) 2009-05-05 14:14:25 +0200 mib r271514 : #159717#: File name info for performance test 2009-05-04 15:23:01 +0200 mib r271466 : #159717#: File name infor for performance test 2009-05-04 15:22:27 +0200 mib r271465 : #159717#: File name infor for performance test 2009-05-04 15:21:56 +0200 mib r271464 : #159717#: File name infor for performance test 2009-05-04 15:21:18 +0200 mib r271462 : #159717#: File name infor for performance test 2009-04-29 16:23:40 +0200 lla r271383 : #159516# cleanups 2009-04-29 16:23:20 +0200 lla r271382 : #159516# cleanups 2009-04-08 12:23:01 +0200 lla r270631 : #159516# typo 2009-04-07 10:30:35 +0200 lla r270580 : #159516# add prototype 2009-04-07 10:21:15 +0200 lla r270579 : #159516# cleanup 2009-04-03 09:05:26 +0200 lla r270448 : #159516# small cleanups 2009-03-30 13:22:26 +0200 lla r270221 : #159517# merge perftest07
2009-07-03 05:14:57 -05:00
if ( $ARGV[$i] =~ /^-autoimpress$/ ) {
my $value = $ARGV[++$i];
if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $autoimpress = 1 };
}
if ( $ARGV[$i] =~ /^-debug$/ ) {
my $value = $ARGV[++$i];
if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $debug = 1 };
}
if ( $ARGV[$i] =~ /^-ooo$/ ) {
my $value = $ARGV[++$i];
if ($value =~ /^true$/ || ($value =~ /^1$/ )) { $is_ooo = 1 };
}
}
}
sub getSubDirsFullPath {
my ($startDir, $DirArray_ref) = @_;
my ($dir);
opendir(DIR,"$startDir");
while($dir = readdir(DIR)) {
if (($dir !~ /\.$/) and ( -d "$startDir$dir") ) {
push (@{$DirArray_ref}, "$startDir$dir");
}
}
closedir(DIR);
}
sub errorFromOpen {
my ($file) = @_;
print_error( "can not open $file", "1");
}