1*cdf0e10cSrcweirpackage ConvwatchHelper; 2*cdf0e10cSrcweir 3*cdf0e10cSrcweiruse English; 4*cdf0e10cSrcweiruse warnings; 5*cdf0e10cSrcweiruse strict; 6*cdf0e10cSrcweiruse Cwd; 7*cdf0e10cSrcweiruse Cwd 'chdir'; 8*cdf0e10cSrcweir 9*cdf0e10cSrcweiruse CallExternals; 10*cdf0e10cSrcweiruse stringhelper; 11*cdf0e10cSrcweiruse filehelper; 12*cdf0e10cSrcweiruse oshelper; 13*cdf0e10cSrcweiruse loghelper; 14*cdf0e10cSrcweir 15*cdf0e10cSrcweirBEGIN { 16*cdf0e10cSrcweir use Exporter (); 17*cdf0e10cSrcweir our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); 18*cdf0e10cSrcweir 19*cdf0e10cSrcweir $VERSION = 1.00; 20*cdf0e10cSrcweir # if using RCS/CVS, this may be preferred 21*cdf0e10cSrcweir $VERSION = do { my @r = (q$Revision: 1.39 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker 22*cdf0e10cSrcweir @ISA = qw(Exporter); 23*cdf0e10cSrcweir @EXPORT = qw(&getQADEVToolsPath &setProjectRoot &getProjectRoot &checkForStop &getSofficeExe &setINPATH); 24*cdf0e10cSrcweir %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ], 25*cdf0e10cSrcweir # your exported package globals go here, 26*cdf0e10cSrcweir # as well as any optionally exported functions 27*cdf0e10cSrcweir @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3); 28*cdf0e10cSrcweir} 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir# ------------------------------------------------------------------------------ 31*cdf0e10cSrcweirour $tempprefix; 32*cdf0e10cSrcweir 33*cdf0e10cSrcweir# sub getTempDir() 34*cdf0e10cSrcweir# { 35*cdf0e10cSrcweir# my $sTempDir; 36*cdf0e10cSrcweir# if (! $tempprefix) 37*cdf0e10cSrcweir# { 38*cdf0e10cSrcweir# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin") 39*cdf0e10cSrcweir# { 40*cdf0e10cSrcweir# # $tempdir = "C:/gfxcmp/temp"; 41*cdf0e10cSrcweir# $tempprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci/temp"; 42*cdf0e10cSrcweir# } 43*cdf0e10cSrcweir# elsif ($OSNAME eq "linux") 44*cdf0e10cSrcweir# { 45*cdf0e10cSrcweir# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi/temp"; 46*cdf0e10cSrcweir# } 47*cdf0e10cSrcweir# elsif ($OSNAME eq "solaris") 48*cdf0e10cSrcweir# { 49*cdf0e10cSrcweir# # $tempdir = "/space/gfxcmp/temp"; 50*cdf0e10cSrcweir# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli/temp"; 51*cdf0e10cSrcweir# } 52*cdf0e10cSrcweir# else 53*cdf0e10cSrcweir# { 54*cdf0e10cSrcweir# print "Error: This environment isn't supported yet.\n"; 55*cdf0e10cSrcweir# exit(1); 56*cdf0e10cSrcweir# } 57*cdf0e10cSrcweir# } 58*cdf0e10cSrcweir# $sTempDir = $tempprefix; 59*cdf0e10cSrcweir# return $sTempDir; 60*cdf0e10cSrcweir# } 61*cdf0e10cSrcweir# ------------------------------------------------------------------------------ 62*cdf0e10cSrcweir# in filehelper 63*cdf0e10cSrcweir# our $programprefix; 64*cdf0e10cSrcweir# 65*cdf0e10cSrcweir# sub getProgramPrefix($) 66*cdf0e10cSrcweir# { 67*cdf0e10cSrcweir# my $sDBDistinct = shift; 68*cdf0e10cSrcweir# 69*cdf0e10cSrcweir# my $sProgramPrefix; 70*cdf0e10cSrcweir# if (! $programprefix) 71*cdf0e10cSrcweir# { 72*cdf0e10cSrcweir# if ($OSNAME eq "MSWin32") 73*cdf0e10cSrcweir# { 74*cdf0e10cSrcweir# # $programprefix = "C:/gfxcmp/programs"; 75*cdf0e10cSrcweir# $programprefix = "C:/gp"; 76*cdf0e10cSrcweir# } 77*cdf0e10cSrcweir# elsif ($OSNAME eq "linux") 78*cdf0e10cSrcweir# { 79*cdf0e10cSrcweir# $programprefix = "/space/gfxcmp/programs"; 80*cdf0e10cSrcweir# } 81*cdf0e10cSrcweir# elsif ($OSNAME eq "solaris") 82*cdf0e10cSrcweir# { 83*cdf0e10cSrcweir# $programprefix = "/space/gfxcmp/programs"; 84*cdf0e10cSrcweir# } 85*cdf0e10cSrcweir# else 86*cdf0e10cSrcweir# { 87*cdf0e10cSrcweir# print "Error: This environment isn't supported yet.\n"; 88*cdf0e10cSrcweir# exit(1); 89*cdf0e10cSrcweir# } 90*cdf0e10cSrcweir# } 91*cdf0e10cSrcweir# $sProgramPrefix = appendPath($programprefix, substr($sDBDistinct, 0, 19)); 92*cdf0e10cSrcweir# return $sProgramPrefix; 93*cdf0e10cSrcweir# } 94*cdf0e10cSrcweir# ------------------------------------------------------------------------------ 95*cdf0e10cSrcweirsub getQADEVToolsPath() 96*cdf0e10cSrcweir{ 97*cdf0e10cSrcweir my $sNewPath = appendPath(getToolsPrefix(), "qadev"); 98*cdf0e10cSrcweir $sNewPath = appendPath($sNewPath, "scripts"); 99*cdf0e10cSrcweir $sNewPath = appendPath($sNewPath, "gfxcmp_ui"); 100*cdf0e10cSrcweir return $sNewPath; 101*cdf0e10cSrcweir} 102*cdf0e10cSrcweir 103*cdf0e10cSrcweir# in filehelper 104*cdf0e10cSrcweir# our $toolsprefix; 105*cdf0e10cSrcweir# 106*cdf0e10cSrcweir# sub getToolsPrefix() 107*cdf0e10cSrcweir# { 108*cdf0e10cSrcweir# my $sToolsPrefix; 109*cdf0e10cSrcweir# if (! $toolsprefix) 110*cdf0e10cSrcweir# { 111*cdf0e10cSrcweir# if ($OSNAME eq "MSWin32") 112*cdf0e10cSrcweir# { 113*cdf0e10cSrcweir# $toolsprefix = "C:/gfxcmp/tools"; 114*cdf0e10cSrcweir# } 115*cdf0e10cSrcweir# elsif ($OSNAME eq "linux") 116*cdf0e10cSrcweir# { 117*cdf0e10cSrcweir# $toolsprefix = "/space/gfxcmp/tools"; 118*cdf0e10cSrcweir# } 119*cdf0e10cSrcweir# elsif ($OSNAME eq "solaris") 120*cdf0e10cSrcweir# { 121*cdf0e10cSrcweir# $toolsprefix = "/space/gfxcmp/tools"; 122*cdf0e10cSrcweir# } 123*cdf0e10cSrcweir# else 124*cdf0e10cSrcweir# { 125*cdf0e10cSrcweir# print "Error: This environment isn't supported yet.\n"; 126*cdf0e10cSrcweir# exit(1); 127*cdf0e10cSrcweir# } 128*cdf0e10cSrcweir# } 129*cdf0e10cSrcweir# $sToolsPrefix = $toolsprefix; 130*cdf0e10cSrcweir# return $sToolsPrefix; 131*cdf0e10cSrcweir# } 132*cdf0e10cSrcweir# ------------------------------------------------------------------------------ 133*cdf0e10cSrcweirour $sProjectRoot; 134*cdf0e10cSrcweirsub setProjectRoot($) 135*cdf0e10cSrcweir{ 136*cdf0e10cSrcweir $sProjectRoot = shift; 137*cdf0e10cSrcweir log_print "\$sProjectRoot := $sProjectRoot\n"; 138*cdf0e10cSrcweir} 139*cdf0e10cSrcweirsub getProjectRoot() 140*cdf0e10cSrcweir{ 141*cdf0e10cSrcweir if ($sProjectRoot) 142*cdf0e10cSrcweir { 143*cdf0e10cSrcweir return $sProjectRoot; 144*cdf0e10cSrcweir } 145*cdf0e10cSrcweir die "setProjectRoot(PATH) not set.\n"; 146*cdf0e10cSrcweir} 147*cdf0e10cSrcweir 148*cdf0e10cSrcweirour $sINPATH; 149*cdf0e10cSrcweirsub setINPATH($) 150*cdf0e10cSrcweir{ 151*cdf0e10cSrcweir $sINPATH = shift; 152*cdf0e10cSrcweir} 153*cdf0e10cSrcweirsub getINPATH() 154*cdf0e10cSrcweir{ 155*cdf0e10cSrcweir if ($sINPATH) 156*cdf0e10cSrcweir { 157*cdf0e10cSrcweir return $sINPATH; 158*cdf0e10cSrcweir } 159*cdf0e10cSrcweir die "setINPATH(PATH) not set.\n"; 160*cdf0e10cSrcweir} 161*cdf0e10cSrcweirour $dataprefix; 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir# sub getDataPrefix() 164*cdf0e10cSrcweir# { 165*cdf0e10cSrcweir# my $sDataPrefix; 166*cdf0e10cSrcweir# if (! $dataprefix) 167*cdf0e10cSrcweir# { 168*cdf0e10cSrcweir# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin") 169*cdf0e10cSrcweir# { 170*cdf0e10cSrcweir# # $dataprefix = "C:/gfxcmp/data"; 171*cdf0e10cSrcweir# # $dataprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci"; 172*cdf0e10cSrcweir# $dataprefix = getProjectRoot(); 173*cdf0e10cSrcweir# } 174*cdf0e10cSrcweir# elsif ($OSNAME eq "linux") 175*cdf0e10cSrcweir# { 176*cdf0e10cSrcweir# # $dataprefix = "/space/gfxcmp/data"; 177*cdf0e10cSrcweir# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi"; 178*cdf0e10cSrcweir# $dataprefix = getProjectRoot(); 179*cdf0e10cSrcweir# } 180*cdf0e10cSrcweir# elsif ($OSNAME eq "solaris") 181*cdf0e10cSrcweir# { 182*cdf0e10cSrcweir# # $dataprefix = "/space/gfxcmp/data"; 183*cdf0e10cSrcweir# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli"; 184*cdf0e10cSrcweir# $dataprefix = getProjectRoot(); 185*cdf0e10cSrcweir# } 186*cdf0e10cSrcweir# else 187*cdf0e10cSrcweir# { 188*cdf0e10cSrcweir# print "Error: This environment isn't supported yet.\n"; 189*cdf0e10cSrcweir# exit(1); 190*cdf0e10cSrcweir# } 191*cdf0e10cSrcweir# $dataprefix = appendPath(getProjectRoot(), getINPATH()); 192*cdf0e10cSrcweir# $dataprefix = appendPath($dataprefix, "data"); 193*cdf0e10cSrcweir# } 194*cdf0e10cSrcweir# $sDataPrefix = $dataprefix; 195*cdf0e10cSrcweir# return $sDataPrefix; 196*cdf0e10cSrcweir# } 197*cdf0e10cSrcweir 198*cdf0e10cSrcweir# ------------------------------------------------------------------------------ 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir# sub _shortsleep($) 201*cdf0e10cSrcweir# { 202*cdf0e10cSrcweir# # sleep 1; 203*cdf0e10cSrcweir# select(undef, undef, undef, 0.333); 204*cdf0e10cSrcweir# } 205*cdf0e10cSrcweir# 206*cdf0e10cSrcweir# sub _waitInSeconds($) 207*cdf0e10cSrcweir# { 208*cdf0e10cSrcweir# my $nLength = shift; 209*cdf0e10cSrcweir# my $i; 210*cdf0e10cSrcweir# my $j; 211*cdf0e10cSrcweir# 212*cdf0e10cSrcweir# for ($j=0;$j<$nLength;$j++) 213*cdf0e10cSrcweir# { 214*cdf0e10cSrcweir# for ($i=0;$i<$j;$i++) 215*cdf0e10cSrcweir# { 216*cdf0e10cSrcweir# print "."; 217*cdf0e10cSrcweir# } 218*cdf0e10cSrcweir# for ($i=$j;$i<$nLength;$i++) 219*cdf0e10cSrcweir# { 220*cdf0e10cSrcweir# print " "; 221*cdf0e10cSrcweir# } 222*cdf0e10cSrcweir# _shortsleep( 1 ); 223*cdf0e10cSrcweir# print "\r"; 224*cdf0e10cSrcweir# } 225*cdf0e10cSrcweir# 226*cdf0e10cSrcweir# for ($j=0;$j<=$nLength;$j++) 227*cdf0e10cSrcweir# { 228*cdf0e10cSrcweir# for ($i=0;$i<$j;$i++) 229*cdf0e10cSrcweir# { 230*cdf0e10cSrcweir# print " "; 231*cdf0e10cSrcweir# } 232*cdf0e10cSrcweir# for ($i=$j;$i<$nLength;$i++) 233*cdf0e10cSrcweir# { 234*cdf0e10cSrcweir# print "."; 235*cdf0e10cSrcweir# } 236*cdf0e10cSrcweir# _shortsleep( 1 ); 237*cdf0e10cSrcweir# print "\r"; 238*cdf0e10cSrcweir# } 239*cdf0e10cSrcweir# } 240*cdf0e10cSrcweir# 241*cdf0e10cSrcweir# sub wait30seconds() 242*cdf0e10cSrcweir# { 243*cdf0e10cSrcweir# _waitInSeconds(20); 244*cdf0e10cSrcweir# _waitInSeconds(20); 245*cdf0e10cSrcweir# } 246*cdf0e10cSrcweir 247*cdf0e10cSrcweirsub checkForStop($) 248*cdf0e10cSrcweir{ 249*cdf0e10cSrcweir my $sStopFilename = shift; 250*cdf0e10cSrcweir my $sStopFilePath; 251*cdf0e10cSrcweir if ($OSNAME eq "MSWin32") 252*cdf0e10cSrcweir { 253*cdf0e10cSrcweir $sStopFilePath = "C:/temp/"; 254*cdf0e10cSrcweir } 255*cdf0e10cSrcweir else 256*cdf0e10cSrcweir { 257*cdf0e10cSrcweir $sStopFilePath = "/tmp/"; 258*cdf0e10cSrcweir } 259*cdf0e10cSrcweir my $sStopFile = $sStopFilePath . $sStopFilename; 260*cdf0e10cSrcweir if ( -e "$sStopFile" ) 261*cdf0e10cSrcweir { 262*cdf0e10cSrcweir print "Stop of Convwatch tool forced!\n"; 263*cdf0e10cSrcweir unlink($sStopFile); 264*cdf0e10cSrcweir exit(2); 265*cdf0e10cSrcweir } 266*cdf0e10cSrcweir} 267*cdf0e10cSrcweir 268*cdf0e10cSrcweir# ---------------------------------------------------------------------------------------- 269*cdf0e10cSrcweirsub readdirectory($$$); 270*cdf0e10cSrcweir 271*cdf0e10cSrcweirsub readdirectory($$$) 272*cdf0e10cSrcweir{ 273*cdf0e10cSrcweir my $startdir = shift; 274*cdf0e10cSrcweir my $sUserParameter = shift; 275*cdf0e10cSrcweir my $hook = shift; 276*cdf0e10cSrcweir 277*cdf0e10cSrcweir my $myfile; 278*cdf0e10cSrcweir 279*cdf0e10cSrcweir local *DIR; 280*cdf0e10cSrcweir chdir $startdir; 281*cdf0e10cSrcweir cwd(); 282*cdf0e10cSrcweir 283*cdf0e10cSrcweir my $nCountFiles = 0; 284*cdf0e10cSrcweir if (opendir (DIR, $startdir)) # Directory oeffnen 285*cdf0e10cSrcweir { 286*cdf0e10cSrcweir while ($myfile = readdir(DIR)) 287*cdf0e10cSrcweir { # ein filename holen 288*cdf0e10cSrcweir #if (! -l $myfile) # not a link 289*cdf0e10cSrcweir #{ 290*cdf0e10cSrcweir if (-d $myfile ) # is a directory 291*cdf0e10cSrcweir { 292*cdf0e10cSrcweir if ( -l $myfile) 293*cdf0e10cSrcweir { 294*cdf0e10cSrcweir next; 295*cdf0e10cSrcweir } 296*cdf0e10cSrcweir # if ( $myfile eq "help" || 297*cdf0e10cSrcweir # $myfile eq "presets" || 298*cdf0e10cSrcweir # $myfile eq "registry" || 299*cdf0e10cSrcweir # $myfile eq "uno_packages" || 300*cdf0e10cSrcweir # $myfile eq "lib" || 301*cdf0e10cSrcweir # $myfile eq "user_tree" ) 302*cdf0e10cSrcweir # { 303*cdf0e10cSrcweir # next; 304*cdf0e10cSrcweir # } 305*cdf0e10cSrcweir 306*cdf0e10cSrcweir if ($myfile ne "." && $myfile ne "..") 307*cdf0e10cSrcweir { 308*cdf0e10cSrcweir my $sNewStartDir = appendPath($startdir, $myfile); # neuen Directorystring erstellen 309*cdf0e10cSrcweir # if ($sNewStartDir =~ "^\/proc" || 310*cdf0e10cSrcweir # $sNewStartDir =~ "^\/dev" || 311*cdf0e10cSrcweir # $sNewStartDir =~ "^\/udev" || 312*cdf0e10cSrcweir # $sNewStartDir =~ "lost+found" ) 313*cdf0e10cSrcweir # { 314*cdf0e10cSrcweir # next; 315*cdf0e10cSrcweir # } 316*cdf0e10cSrcweir # my $sNewSUserParameter = $sUserParameter . $myfile ."/"; 317*cdf0e10cSrcweir # do a recursive call 318*cdf0e10cSrcweir # $nCountFiles++; 319*cdf0e10cSrcweir my $nFileCount = readdirectory($sNewStartDir, $sUserParameter, $hook); 320*cdf0e10cSrcweir # workOnDir($sNewDir, $nFileCount); 321*cdf0e10cSrcweir $nCountFiles += $nFileCount; 322*cdf0e10cSrcweir 323*cdf0e10cSrcweir chdir ($startdir); # zurueckwechseln. 324*cdf0e10cSrcweir cwd(); 325*cdf0e10cSrcweir } 326*cdf0e10cSrcweir } 327*cdf0e10cSrcweir else 328*cdf0e10cSrcweir { 329*cdf0e10cSrcweir # File must exist, be a regular file and must not be the $onlyOnFile 330*cdf0e10cSrcweir if (-f $myfile) 331*cdf0e10cSrcweir { 332*cdf0e10cSrcweir # print STDERR " $startdir" . "$myfile\n"; 333*cdf0e10cSrcweir $nCountFiles++; 334*cdf0e10cSrcweir # workOnFile($startdir, $myfile, $destdir); 335*cdf0e10cSrcweir $hook->($startdir, $myfile, $sUserParameter); 336*cdf0e10cSrcweir } 337*cdf0e10cSrcweir } 338*cdf0e10cSrcweir #} 339*cdf0e10cSrcweir #else 340*cdf0e10cSrcweir #{ 341*cdf0e10cSrcweir # print STDERR "linked file: $dir/$myfile\n"; 342*cdf0e10cSrcweir #} 343*cdf0e10cSrcweir } 344*cdf0e10cSrcweir closedir(DIR); 345*cdf0e10cSrcweir } 346*cdf0e10cSrcweir else 347*cdf0e10cSrcweir { 348*cdf0e10cSrcweir print STDERR "could not open $startdir\n"; 349*cdf0e10cSrcweir } 350*cdf0e10cSrcweir return $nCountFiles; 351*cdf0e10cSrcweir} 352*cdf0e10cSrcweir 353*cdf0e10cSrcweirour $lcl_sSofficeBinPath; 354*cdf0e10cSrcweirour $lcl_sSofficeBinName; 355*cdf0e10cSrcweir 356*cdf0e10cSrcweirsub searchSofficeBin($$$) 357*cdf0e10cSrcweir{ 358*cdf0e10cSrcweir my $currentDir = shift; 359*cdf0e10cSrcweir my $currentFile = shift; 360*cdf0e10cSrcweir my $sUserParameter = shift; 361*cdf0e10cSrcweir 362*cdf0e10cSrcweir if ($currentFile eq $sUserParameter) 363*cdf0e10cSrcweir { 364*cdf0e10cSrcweir my $sSourceFilename; 365*cdf0e10cSrcweir $sSourceFilename = appendPath($currentDir, $currentFile); 366*cdf0e10cSrcweir 367*cdf0e10cSrcweir if ( -e "$sSourceFilename" ) 368*cdf0e10cSrcweir { 369*cdf0e10cSrcweir $lcl_sSofficeBinPath = $currentDir; 370*cdf0e10cSrcweir $lcl_sSofficeBinName = $currentFile; 371*cdf0e10cSrcweir } 372*cdf0e10cSrcweir } 373*cdf0e10cSrcweir} 374*cdf0e10cSrcweir 375*cdf0e10cSrcweir# our $lcl_sUnoPkgPath; 376*cdf0e10cSrcweir# 377*cdf0e10cSrcweir# sub searchUnoPkgBin($$$) 378*cdf0e10cSrcweir# { 379*cdf0e10cSrcweir# my $currentDir = shift; 380*cdf0e10cSrcweir# my $currentFile = shift; 381*cdf0e10cSrcweir# my $sUserParameter = shift; 382*cdf0e10cSrcweir# 383*cdf0e10cSrcweir# if ($currentFile eq $sUserParameter) 384*cdf0e10cSrcweir# { 385*cdf0e10cSrcweir# my $sSourceFilename; 386*cdf0e10cSrcweir# $sSourceFilename = appendPath($currentDir, $currentFile); 387*cdf0e10cSrcweir# if ( -e "$sSourceFilename" ) 388*cdf0e10cSrcweir# { 389*cdf0e10cSrcweir# $lcl_sUnoPkgPath = $currentDir; 390*cdf0e10cSrcweir# } 391*cdf0e10cSrcweir# } 392*cdf0e10cSrcweir# } 393*cdf0e10cSrcweir 394*cdf0e10cSrcweir# our $lcl_sJARPath; 395*cdf0e10cSrcweir 396*cdf0e10cSrcweir# sub searchJARFile($$$) 397*cdf0e10cSrcweir# { 398*cdf0e10cSrcweir# my $currentDir = shift; 399*cdf0e10cSrcweir# my $currentFile = shift; 400*cdf0e10cSrcweir# my $sUserParameter = shift; 401*cdf0e10cSrcweir# 402*cdf0e10cSrcweir# if ($currentFile eq $sUserParameter) 403*cdf0e10cSrcweir# { 404*cdf0e10cSrcweir# my $sSourceFilename; 405*cdf0e10cSrcweir# $sSourceFilename = appendPath($currentDir, $currentFile); 406*cdf0e10cSrcweir# if ( -e "$sSourceFilename" ) 407*cdf0e10cSrcweir# { 408*cdf0e10cSrcweir# $lcl_sJARPath = $currentDir; 409*cdf0e10cSrcweir# } 410*cdf0e10cSrcweir# } 411*cdf0e10cSrcweir# } 412*cdf0e10cSrcweir 413*cdf0e10cSrcweir# return the PATH, where the file was found 414*cdf0e10cSrcweir# sub searchForJAR($$) 415*cdf0e10cSrcweir# { 416*cdf0e10cSrcweir# my $sPathToInstallOffice = shift; 417*cdf0e10cSrcweir# my $sJARFileName = shift; 418*cdf0e10cSrcweir# 419*cdf0e10cSrcweir# my $sCurrentPath = cwd(); 420*cdf0e10cSrcweir# 421*cdf0e10cSrcweir# $lcl_sJARPath = ""; 422*cdf0e10cSrcweir# readdirectory(${sPathToInstallOffice}, ${sJARFileName}, \&searchJARFile); 423*cdf0e10cSrcweir# 424*cdf0e10cSrcweir# chdir $sCurrentPath; 425*cdf0e10cSrcweir# cwd(); 426*cdf0e10cSrcweir# 427*cdf0e10cSrcweir# return $lcl_sJARPath; 428*cdf0e10cSrcweir# } 429*cdf0e10cSrcweir 430*cdf0e10cSrcweir# sub getUnoPkg($) 431*cdf0e10cSrcweir# { 432*cdf0e10cSrcweir# my $sPathToInstallOffice = shift; 433*cdf0e10cSrcweir# 434*cdf0e10cSrcweir# my $sUnoPkgName = "unopkg.bin"; 435*cdf0e10cSrcweir# if (isWindowsEnvironment()) 436*cdf0e10cSrcweir# { 437*cdf0e10cSrcweir# $sUnoPkgName = "unopkg.exe"; 438*cdf0e10cSrcweir# } 439*cdf0e10cSrcweir# 440*cdf0e10cSrcweir# my $sCurrentPath = cwd(); 441*cdf0e10cSrcweir# 442*cdf0e10cSrcweir# $lcl_sUnoPkgPath = ""; 443*cdf0e10cSrcweir# readdirectory(${sPathToInstallOffice}, ${sUnoPkgName}, \&searchUnoPkgBin); 444*cdf0e10cSrcweir# 445*cdf0e10cSrcweir# chdir $sCurrentPath; 446*cdf0e10cSrcweir# cwd(); 447*cdf0e10cSrcweir# 448*cdf0e10cSrcweir# return ($lcl_sUnoPkgPath, $sUnoPkgName); 449*cdf0e10cSrcweir# } 450*cdf0e10cSrcweir 451*cdf0e10cSrcweirsub getSofficeExe($) 452*cdf0e10cSrcweir{ 453*cdf0e10cSrcweir my $sPathToOffice = shift; 454*cdf0e10cSrcweir 455*cdf0e10cSrcweir my $sSofficeExeName = "soffice"; 456*cdf0e10cSrcweir if (isWindowsEnvironment()) 457*cdf0e10cSrcweir { 458*cdf0e10cSrcweir $sSofficeExeName = "soffice.exe"; 459*cdf0e10cSrcweir } 460*cdf0e10cSrcweir 461*cdf0e10cSrcweir my $sCurrentPath = cwd(); 462*cdf0e10cSrcweir 463*cdf0e10cSrcweir $lcl_sSofficeBinPath = ""; 464*cdf0e10cSrcweir $lcl_sSofficeBinName = ""; 465*cdf0e10cSrcweir readdirectory(${sPathToOffice}, ${sSofficeExeName}, \&searchSofficeBin); 466*cdf0e10cSrcweir 467*cdf0e10cSrcweir chdir $sCurrentPath; 468*cdf0e10cSrcweir cwd(); 469*cdf0e10cSrcweir 470*cdf0e10cSrcweir return ($lcl_sSofficeBinPath, $lcl_sSofficeBinName); 471*cdf0e10cSrcweir} 472*cdf0e10cSrcweir 473*cdf0e10cSrcweir# sub checkOfficeAlreadyInstalled($) 474*cdf0e10cSrcweir# { 475*cdf0e10cSrcweir# my $sOfficePath = shift; 476*cdf0e10cSrcweir# 477*cdf0e10cSrcweir# my $sCurrentPath = cwd(); 478*cdf0e10cSrcweir# 479*cdf0e10cSrcweir# $lcl_sSofficeBinPath = ""; 480*cdf0e10cSrcweir# my $sOldOfficePath = appendPath($sOfficePath, "program"); 481*cdf0e10cSrcweir# if ( -d "$sOldOfficePath" ) 482*cdf0e10cSrcweir# { 483*cdf0e10cSrcweir# $sOldOfficePath = appendPath($sOldOfficePath, "soffice.bin"); 484*cdf0e10cSrcweir# if ( -e $sOldOfficePath ) 485*cdf0e10cSrcweir# { 486*cdf0e10cSrcweir# return 1; 487*cdf0e10cSrcweir# } 488*cdf0e10cSrcweir# } 489*cdf0e10cSrcweir# else 490*cdf0e10cSrcweir# { 491*cdf0e10cSrcweir# if (isWindowsEnvironment()) 492*cdf0e10cSrcweir# { 493*cdf0e10cSrcweir# my $sThreeLayerOffice = appendPath($sOfficePath, "Sun"); 494*cdf0e10cSrcweir# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "StarOffice 9"); 495*cdf0e10cSrcweir# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program"); 496*cdf0e10cSrcweir# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin"); 497*cdf0e10cSrcweir# 498*cdf0e10cSrcweir# if ( -e "$sThreeLayerOffice" ) 499*cdf0e10cSrcweir# { 500*cdf0e10cSrcweir# return 1; 501*cdf0e10cSrcweir# } 502*cdf0e10cSrcweir# } 503*cdf0e10cSrcweir# else 504*cdf0e10cSrcweir# { 505*cdf0e10cSrcweir# my $sThreeLayerOffice = appendPath($sOfficePath, "staroffice9"); 506*cdf0e10cSrcweir# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program"); 507*cdf0e10cSrcweir# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin"); 508*cdf0e10cSrcweir# if ( -e "$sThreeLayerOffice" ) 509*cdf0e10cSrcweir# { 510*cdf0e10cSrcweir# return 1; 511*cdf0e10cSrcweir# } 512*cdf0e10cSrcweir# } 513*cdf0e10cSrcweir# } 514*cdf0e10cSrcweir# 515*cdf0e10cSrcweir# # soffice.bin not found in fast path 516*cdf0e10cSrcweir# readdirectory($sOfficePath, "soffice.bin", \&searchSofficeBin); 517*cdf0e10cSrcweir# chdir $sCurrentPath; 518*cdf0e10cSrcweir# cwd(); 519*cdf0e10cSrcweir# 520*cdf0e10cSrcweir# if ( $lcl_sSofficeBinPath ne "" ) 521*cdf0e10cSrcweir# { 522*cdf0e10cSrcweir# return 1; 523*cdf0e10cSrcweir# } 524*cdf0e10cSrcweir# return 0; 525*cdf0e10cSrcweir# # this is the old check 526*cdf0e10cSrcweir# # my $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "program"); 527*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin"); 528*cdf0e10cSrcweir# # if ( -e $sOfficePathCheck ) 529*cdf0e10cSrcweir# # { 530*cdf0e10cSrcweir# # return 1; 531*cdf0e10cSrcweir# # } 532*cdf0e10cSrcweir# # 533*cdf0e10cSrcweir# # # check path system of tree layer office 534*cdf0e10cSrcweir# # if ( isWindowsEnvironment() ) 535*cdf0e10cSrcweir# # { 536*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "Sun"); 537*cdf0e10cSrcweir# # if ( ! -e $sOfficePathCheck) 538*cdf0e10cSrcweir# # { 539*cdf0e10cSrcweir# # # could be an OpenOffice.org 540*cdf0e10cSrcweir# # return 0; 541*cdf0e10cSrcweir# # } 542*cdf0e10cSrcweir# # else 543*cdf0e10cSrcweir# # { 544*cdf0e10cSrcweir# # 545*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath($sOfficePathCheck, "StarOffice 9"); 546*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program"); 547*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin"); 548*cdf0e10cSrcweir# # if ( -e $sOfficePathCheck ) 549*cdf0e10cSrcweir# # { 550*cdf0e10cSrcweir# # return 1; 551*cdf0e10cSrcweir# # } 552*cdf0e10cSrcweir# # print "Error: There exist no Office, maybe an unsupported version?\n"; 553*cdf0e10cSrcweir# # } 554*cdf0e10cSrcweir# # } 555*cdf0e10cSrcweir# # elsif ( isUnixEnvironment() ) 556*cdf0e10cSrcweir# # { 557*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "staroffice9"); 558*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath($sOfficePathCheck, "staroffice9"); 559*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program"); 560*cdf0e10cSrcweir# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin"); 561*cdf0e10cSrcweir# # if ( -e $sOfficePathCheck ) 562*cdf0e10cSrcweir# # { 563*cdf0e10cSrcweir# # return 1; 564*cdf0e10cSrcweir# # } 565*cdf0e10cSrcweir# # print "Error: There exist no Office, maybe an unsupported version?\n"; 566*cdf0e10cSrcweir# # } 567*cdf0e10cSrcweir# # else 568*cdf0e10cSrcweir# # { 569*cdf0e10cSrcweir# # print "Error: There exist no Office, maybe an unsupported version?\n"; 570*cdf0e10cSrcweir# # } 571*cdf0e10cSrcweir# # return 0; 572*cdf0e10cSrcweir# } 573*cdf0e10cSrcweir 574*cdf0e10cSrcweir1; 575