diff options
Diffstat (limited to 'testgraphical/source/ConvwatchHelper.pm')
-rw-r--r-- | testgraphical/source/ConvwatchHelper.pm | 574 |
1 files changed, 574 insertions, 0 deletions
diff --git a/testgraphical/source/ConvwatchHelper.pm b/testgraphical/source/ConvwatchHelper.pm new file mode 100644 index 000000000000..8f157641b1f4 --- /dev/null +++ b/testgraphical/source/ConvwatchHelper.pm @@ -0,0 +1,574 @@ +package ConvwatchHelper; + +use English; +use warnings; +use strict; +use Cwd; +use Cwd 'chdir'; + +use CallExternals; +use stringhelper; +use filehelper; +use oshelper; +use loghelper; + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + + $VERSION = 1.00; + # if using RCS/CVS, this may be preferred + $VERSION = do { my @r = (q$Revision: 1.39 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + @ISA = qw(Exporter); + @EXPORT = qw(&getQADEVToolsPath &setProjectRoot &getProjectRoot &checkForStop &getSofficeExe &setINPATH); + %EXPORT_TAGS = ( ); # eg: TAG => [ qw!name1 name2! ], + # your exported package globals go here, + # as well as any optionally exported functions + @EXPORT_OK = ( ); # qw($Var1 %Hashit &func3); +} + +# ------------------------------------------------------------------------------ +our $tempprefix; + +# sub getTempDir() +# { +# my $sTempDir; +# if (! $tempprefix) +# { +# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin") +# { +# # $tempdir = "C:/gfxcmp/temp"; +# $tempprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci/temp"; +# } +# elsif ($OSNAME eq "linux") +# { +# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi/temp"; +# } +# elsif ($OSNAME eq "solaris") +# { +# # $tempdir = "/space/gfxcmp/temp"; +# $tempprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli/temp"; +# } +# else +# { +# print "Error: This environment isn't supported yet.\n"; +# exit(1); +# } +# } +# $sTempDir = $tempprefix; +# return $sTempDir; +# } +# ------------------------------------------------------------------------------ +# in filehelper +# our $programprefix; +# +# sub getProgramPrefix($) +# { +# my $sDBDistinct = shift; +# +# my $sProgramPrefix; +# if (! $programprefix) +# { +# if ($OSNAME eq "MSWin32") +# { +# # $programprefix = "C:/gfxcmp/programs"; +# $programprefix = "C:/gp"; +# } +# elsif ($OSNAME eq "linux") +# { +# $programprefix = "/space/gfxcmp/programs"; +# } +# elsif ($OSNAME eq "solaris") +# { +# $programprefix = "/space/gfxcmp/programs"; +# } +# else +# { +# print "Error: This environment isn't supported yet.\n"; +# exit(1); +# } +# } +# $sProgramPrefix = appendPath($programprefix, substr($sDBDistinct, 0, 19)); +# return $sProgramPrefix; +# } +# ------------------------------------------------------------------------------ +sub getQADEVToolsPath() +{ + my $sNewPath = appendPath(getToolsPrefix(), "qadev"); + $sNewPath = appendPath($sNewPath, "scripts"); + $sNewPath = appendPath($sNewPath, "gfxcmp_ui"); + return $sNewPath; +} + +# in filehelper +# our $toolsprefix; +# +# sub getToolsPrefix() +# { +# my $sToolsPrefix; +# if (! $toolsprefix) +# { +# if ($OSNAME eq "MSWin32") +# { +# $toolsprefix = "C:/gfxcmp/tools"; +# } +# elsif ($OSNAME eq "linux") +# { +# $toolsprefix = "/space/gfxcmp/tools"; +# } +# elsif ($OSNAME eq "solaris") +# { +# $toolsprefix = "/space/gfxcmp/tools"; +# } +# else +# { +# print "Error: This environment isn't supported yet.\n"; +# exit(1); +# } +# } +# $sToolsPrefix = $toolsprefix; +# return $sToolsPrefix; +# } +# ------------------------------------------------------------------------------ +our $sProjectRoot; +sub setProjectRoot($) +{ + $sProjectRoot = shift; + log_print "\$sProjectRoot := $sProjectRoot\n"; +} +sub getProjectRoot() +{ + if ($sProjectRoot) + { + return $sProjectRoot; + } + die "setProjectRoot(PATH) not set.\n"; +} + +our $sINPATH; +sub setINPATH($) +{ + $sINPATH = shift; +} +sub getINPATH() +{ + if ($sINPATH) + { + return $sINPATH; + } + die "setINPATH(PATH) not set.\n"; +} +our $dataprefix; + +# sub getDataPrefix() +# { +# my $sDataPrefix; +# if (! $dataprefix) +# { +# if ($OSNAME eq "MSWin32" || $OSNAME eq "cygwin") +# { +# # $dataprefix = "C:/gfxcmp/data"; +# # $dataprefix = "//so-gfxcmp-lin/gfxcmp-data/wntmsci"; +# $dataprefix = getProjectRoot(); +# } +# elsif ($OSNAME eq "linux") +# { +# # $dataprefix = "/space/gfxcmp/data"; +# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxlngi"; +# $dataprefix = getProjectRoot(); +# } +# elsif ($OSNAME eq "solaris") +# { +# # $dataprefix = "/space/gfxcmp/data"; +# # $dataprefix = "/net/so-gfxcmp-lin/export/gfxcmp/data/unxsoli"; +# $dataprefix = getProjectRoot(); +# } +# else +# { +# print "Error: This environment isn't supported yet.\n"; +# exit(1); +# } +# $dataprefix = appendPath(getProjectRoot(), getINPATH()); +# $dataprefix = appendPath($dataprefix, "data"); +# } +# $sDataPrefix = $dataprefix; +# return $sDataPrefix; +# } + +# ------------------------------------------------------------------------------ + +# sub _shortsleep($) +# { +# # sleep 1; +# select(undef, undef, undef, 0.333); +# } +# +# sub _waitInSeconds($) +# { +# my $nLength = shift; +# my $i; +# my $j; +# +# for ($j=0;$j<$nLength;$j++) +# { +# for ($i=0;$i<$j;$i++) +# { +# print "."; +# } +# for ($i=$j;$i<$nLength;$i++) +# { +# print " "; +# } +# _shortsleep( 1 ); +# print "\r"; +# } +# +# for ($j=0;$j<=$nLength;$j++) +# { +# for ($i=0;$i<$j;$i++) +# { +# print " "; +# } +# for ($i=$j;$i<$nLength;$i++) +# { +# print "."; +# } +# _shortsleep( 1 ); +# print "\r"; +# } +# } +# +# sub wait30seconds() +# { +# _waitInSeconds(20); +# _waitInSeconds(20); +# } + +sub checkForStop($) +{ + my $sStopFilename = shift; + my $sStopFilePath; + if ($OSNAME eq "MSWin32") + { + $sStopFilePath = "C:/temp/"; + } + else + { + $sStopFilePath = "/tmp/"; + } + my $sStopFile = $sStopFilePath . $sStopFilename; + if ( -e "$sStopFile" ) + { + print "Stop of Convwatch tool forced!\n"; + unlink($sStopFile); + exit(2); + } +} + +# ---------------------------------------------------------------------------------------- +sub readdirectory($$$); + +sub readdirectory($$$) +{ + my $startdir = shift; + my $sUserParameter = shift; + my $hook = shift; + + my $myfile; + + local *DIR; + chdir $startdir; + cwd(); + + my $nCountFiles = 0; + if (opendir (DIR, $startdir)) # Directory oeffnen + { + while ($myfile = readdir(DIR)) + { # ein filename holen + #if (! -l $myfile) # not a link + #{ + if (-d $myfile ) # is a directory + { + if ( -l $myfile) + { + next; + } + # if ( $myfile eq "help" || + # $myfile eq "presets" || + # $myfile eq "registry" || + # $myfile eq "uno_packages" || + # $myfile eq "lib" || + # $myfile eq "user_tree" ) + # { + # next; + # } + + if ($myfile ne "." && $myfile ne "..") + { + my $sNewStartDir = appendPath($startdir, $myfile); # neuen Directorystring erstellen + # if ($sNewStartDir =~ "^\/proc" || + # $sNewStartDir =~ "^\/dev" || + # $sNewStartDir =~ "^\/udev" || + # $sNewStartDir =~ "lost+found" ) + # { + # next; + # } + # my $sNewSUserParameter = $sUserParameter . $myfile ."/"; + # do a recursive call + # $nCountFiles++; + my $nFileCount = readdirectory($sNewStartDir, $sUserParameter, $hook); + # workOnDir($sNewDir, $nFileCount); + $nCountFiles += $nFileCount; + + chdir ($startdir); # zurueckwechseln. + cwd(); + } + } + else + { + # File must exist, be a regular file and must not be the $onlyOnFile + if (-f $myfile) + { + # print STDERR " $startdir" . "$myfile\n"; + $nCountFiles++; + # workOnFile($startdir, $myfile, $destdir); + $hook->($startdir, $myfile, $sUserParameter); + } + } + #} + #else + #{ + # print STDERR "linked file: $dir/$myfile\n"; + #} + } + closedir(DIR); + } + else + { + print STDERR "could not open $startdir\n"; + } + return $nCountFiles; +} + +our $lcl_sSofficeBinPath; +our $lcl_sSofficeBinName; + +sub searchSofficeBin($$$) +{ + my $currentDir = shift; + my $currentFile = shift; + my $sUserParameter = shift; + + if ($currentFile eq $sUserParameter) + { + my $sSourceFilename; + $sSourceFilename = appendPath($currentDir, $currentFile); + + if ( -e "$sSourceFilename" ) + { + $lcl_sSofficeBinPath = $currentDir; + $lcl_sSofficeBinName = $currentFile; + } + } +} + +# our $lcl_sUnoPkgPath; +# +# sub searchUnoPkgBin($$$) +# { +# my $currentDir = shift; +# my $currentFile = shift; +# my $sUserParameter = shift; +# +# if ($currentFile eq $sUserParameter) +# { +# my $sSourceFilename; +# $sSourceFilename = appendPath($currentDir, $currentFile); +# if ( -e "$sSourceFilename" ) +# { +# $lcl_sUnoPkgPath = $currentDir; +# } +# } +# } + +# our $lcl_sJARPath; + +# sub searchJARFile($$$) +# { +# my $currentDir = shift; +# my $currentFile = shift; +# my $sUserParameter = shift; +# +# if ($currentFile eq $sUserParameter) +# { +# my $sSourceFilename; +# $sSourceFilename = appendPath($currentDir, $currentFile); +# if ( -e "$sSourceFilename" ) +# { +# $lcl_sJARPath = $currentDir; +# } +# } +# } + +# return the PATH, where the file was found +# sub searchForJAR($$) +# { +# my $sPathToInstallOffice = shift; +# my $sJARFileName = shift; +# +# my $sCurrentPath = cwd(); +# +# $lcl_sJARPath = ""; +# readdirectory(${sPathToInstallOffice}, ${sJARFileName}, \&searchJARFile); +# +# chdir $sCurrentPath; +# cwd(); +# +# return $lcl_sJARPath; +# } + +# sub getUnoPkg($) +# { +# my $sPathToInstallOffice = shift; +# +# my $sUnoPkgName = "unopkg.bin"; +# if (isWindowsEnvironment()) +# { +# $sUnoPkgName = "unopkg.exe"; +# } +# +# my $sCurrentPath = cwd(); +# +# $lcl_sUnoPkgPath = ""; +# readdirectory(${sPathToInstallOffice}, ${sUnoPkgName}, \&searchUnoPkgBin); +# +# chdir $sCurrentPath; +# cwd(); +# +# return ($lcl_sUnoPkgPath, $sUnoPkgName); +# } + +sub getSofficeExe($) +{ + my $sPathToOffice = shift; + + my $sSofficeExeName = "soffice"; + if (isWindowsEnvironment()) + { + $sSofficeExeName = "soffice.exe"; + } + + my $sCurrentPath = cwd(); + + $lcl_sSofficeBinPath = ""; + $lcl_sSofficeBinName = ""; + readdirectory(${sPathToOffice}, ${sSofficeExeName}, \&searchSofficeBin); + + chdir $sCurrentPath; + cwd(); + + return ($lcl_sSofficeBinPath, $lcl_sSofficeBinName); +} + +# sub checkOfficeAlreadyInstalled($) +# { +# my $sOfficePath = shift; +# +# my $sCurrentPath = cwd(); +# +# $lcl_sSofficeBinPath = ""; +# my $sOldOfficePath = appendPath($sOfficePath, "program"); +# if ( -d "$sOldOfficePath" ) +# { +# $sOldOfficePath = appendPath($sOldOfficePath, "soffice.bin"); +# if ( -e $sOldOfficePath ) +# { +# return 1; +# } +# } +# else +# { +# if (isWindowsEnvironment()) +# { +# my $sThreeLayerOffice = appendPath($sOfficePath, "Sun"); +# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "StarOffice 9"); +# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program"); +# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin"); +# +# if ( -e "$sThreeLayerOffice" ) +# { +# return 1; +# } +# } +# else +# { +# my $sThreeLayerOffice = appendPath($sOfficePath, "staroffice9"); +# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "program"); +# $sThreeLayerOffice = appendPath($sThreeLayerOffice, "soffice.bin"); +# if ( -e "$sThreeLayerOffice" ) +# { +# return 1; +# } +# } +# } +# +# # soffice.bin not found in fast path +# readdirectory($sOfficePath, "soffice.bin", \&searchSofficeBin); +# chdir $sCurrentPath; +# cwd(); +# +# if ( $lcl_sSofficeBinPath ne "" ) +# { +# return 1; +# } +# return 0; +# # this is the old check +# # my $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "program"); +# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin"); +# # if ( -e $sOfficePathCheck ) +# # { +# # return 1; +# # } +# # +# # # check path system of tree layer office +# # if ( isWindowsEnvironment() ) +# # { +# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "Sun"); +# # if ( ! -e $sOfficePathCheck) +# # { +# # # could be an OpenOffice.org +# # return 0; +# # } +# # else +# # { +# # +# # $sOfficePathCheck = appendPath($sOfficePathCheck, "StarOffice 9"); +# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program"); +# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin"); +# # if ( -e $sOfficePathCheck ) +# # { +# # return 1; +# # } +# # print "Error: There exist no Office, maybe an unsupported version?\n"; +# # } +# # } +# # elsif ( isUnixEnvironment() ) +# # { +# # $sOfficePathCheck = appendPath(${sPathToInstallOffice}, "staroffice9"); +# # $sOfficePathCheck = appendPath($sOfficePathCheck, "staroffice9"); +# # $sOfficePathCheck = appendPath($sOfficePathCheck, "program"); +# # $sOfficePathCheck = appendPath($sOfficePathCheck, "soffice.bin"); +# # if ( -e $sOfficePathCheck ) +# # { +# # return 1; +# # } +# # print "Error: There exist no Office, maybe an unsupported version?\n"; +# # } +# # else +# # { +# # print "Error: There exist no Office, maybe an unsupported version?\n"; +# # } +# # return 0; +# } + +1; |