1*b1cdbd2cSJim Jagielskieval 'exec perl -wS $0 ${1+\"$@\"}' 2*b1cdbd2cSJim Jagielski if 0; 3*b1cdbd2cSJim Jagielski 4*b1cdbd2cSJim Jagielski#************************************************************** 5*b1cdbd2cSJim Jagielski# 6*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 7*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 8*b1cdbd2cSJim Jagielski# distributed with this work for additional information 9*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 10*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 11*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 12*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 13*b1cdbd2cSJim Jagielski# 14*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 15*b1cdbd2cSJim Jagielski# 16*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 17*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 18*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 19*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 20*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 21*b1cdbd2cSJim Jagielski# under the License. 22*b1cdbd2cSJim Jagielski# 23*b1cdbd2cSJim Jagielski#************************************************************** 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim JagielskiBEGIN 28*b1cdbd2cSJim Jagielski{ 29*b1cdbd2cSJim Jagielski # Adding the path of this script file to the include path in the hope 30*b1cdbd2cSJim Jagielski # that all used modules can be found in it. 31*b1cdbd2cSJim Jagielski $0 =~ /^(.*)[\/\\]/; 32*b1cdbd2cSJim Jagielski push @INC, $1; 33*b1cdbd2cSJim Jagielski # print "PATH: " . $1 . "\n"; 34*b1cdbd2cSJim Jagielski} 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski# my $e; 37*b1cdbd2cSJim Jagielski# foreach $e (keys %ENV) 38*b1cdbd2cSJim Jagielski# { 39*b1cdbd2cSJim Jagielski# print "$e := $ENV{$e}" . "\n"; 40*b1cdbd2cSJim Jagielski# } 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielskiuse strict; 43*b1cdbd2cSJim Jagielskiuse graphical_compare; 44*b1cdbd2cSJim Jagielskiuse ConvwatchHelper; 45*b1cdbd2cSJim Jagielskiuse filehelper; 46*b1cdbd2cSJim Jagielskiuse timehelper; 47*b1cdbd2cSJim Jagielskiuse loghelper; 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielskiuse Cwd; 50*b1cdbd2cSJim Jagielskiuse File::Basename; 51*b1cdbd2cSJim Jagielskiuse Getopt::Long; 52*b1cdbd2cSJim Jagielskiuse English; # $OSNAME, ... 53*b1cdbd2cSJim Jagielskiuse File::Path; 54*b1cdbd2cSJim Jagielskiuse Cwd 'chdir'; 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielskiour $help; # Help option flag 57*b1cdbd2cSJim Jagielskiour $version; # Version option flag 58*b1cdbd2cSJim Jagielski# our $test; 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski# our $MAJOR; 61*b1cdbd2cSJim Jagielski# our $MINOR; 62*b1cdbd2cSJim Jagielski# our $cwsname; 63*b1cdbd2cSJim Jagielskiour $pool; 64*b1cdbd2cSJim Jagielskiour $document; 65*b1cdbd2cSJim Jagielskiour $creatortype; 66*b1cdbd2cSJim Jagielskiour $prepareonly = 0; 67*b1cdbd2cSJim Jagielskiour $force; 68*b1cdbd2cSJim Jagielskiour $verbose = 0; 69*b1cdbd2cSJim Jagielskiour $show = 0; 70*b1cdbd2cSJim Jagielskiour $connectionstring; 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski# Prototypes 73*b1cdbd2cSJim Jagielskisub print_usage(*); 74*b1cdbd2cSJim Jagielskisub prepare(); 75*b1cdbd2cSJim Jagielskisub CompareFiles($$); 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski# flush STDOUT 78*b1cdbd2cSJim Jagielski# my $old_handle = select (STDOUT); # "select" STDOUT and save # previously selected handle 79*b1cdbd2cSJim Jagielski# $| = 1; # perform flush after each write to STDOUT 80*b1cdbd2cSJim Jagielski# select ($old_handle); # restore previously selected handle 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski$OUTPUT_AUTOFLUSH=1; # works only if use English is used. 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielskiour $version_info = 'compare.pl'; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim JagielskiGetOptions( 87*b1cdbd2cSJim Jagielski# "MAJOR=s" => \$MAJOR, 88*b1cdbd2cSJim Jagielski# "MINOR=s" => \$MINOR, 89*b1cdbd2cSJim Jagielski# "cwsname=s" => \$cwsname, 90*b1cdbd2cSJim Jagielski "pool=s" => \$pool, 91*b1cdbd2cSJim Jagielski "document=s" => \$document, 92*b1cdbd2cSJim Jagielski "creatortype=s" => \$creatortype, 93*b1cdbd2cSJim Jagielski "prepareonly=s" => \$prepareonly, 94*b1cdbd2cSJim Jagielski "connectionstring=s" => \$connectionstring, 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski "force" => \$force, 97*b1cdbd2cSJim Jagielski "verbose" => \$verbose, 98*b1cdbd2cSJim Jagielski "show" => \$show, 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski# "test" => \$test, 101*b1cdbd2cSJim Jagielski "help" => \$help, 102*b1cdbd2cSJim Jagielski "version" => \$version 103*b1cdbd2cSJim Jagielski ); 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielskiif ($help) 106*b1cdbd2cSJim Jagielski{ 107*b1cdbd2cSJim Jagielski print_usage(*STDOUT); 108*b1cdbd2cSJim Jagielski exit(0); 109*b1cdbd2cSJim Jagielski} 110*b1cdbd2cSJim Jagielski# Check for version option 111*b1cdbd2cSJim Jagielskiif ($version) 112*b1cdbd2cSJim Jagielski{ 113*b1cdbd2cSJim Jagielski print STDERR "$version_info\n"; 114*b1cdbd2cSJim Jagielski exit(0); 115*b1cdbd2cSJim Jagielski} 116*b1cdbd2cSJim Jagielski 117*b1cdbd2cSJim Jagielskiif ($prepareonly) 118*b1cdbd2cSJim Jagielski{ 119*b1cdbd2cSJim Jagielski $force=1; 120*b1cdbd2cSJim Jagielski} 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielskiprepare(); 123*b1cdbd2cSJim Jagielskiif ($connectionstring) 124*b1cdbd2cSJim Jagielski{ 125*b1cdbd2cSJim Jagielski setConnectionString($connectionstring); 126*b1cdbd2cSJim Jagielski} 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielskimy $sDocumentPool = appendPath(getProjectRoot(), "document-pool"); 129*b1cdbd2cSJim Jagielski# print "ProjectRoot: " . getProjectRoot() . "\n"; 130*b1cdbd2cSJim Jagielskiif ($ENV{DOCUMENTPOOL}) 131*b1cdbd2cSJim Jagielski{ 132*b1cdbd2cSJim Jagielski if ( -d $ENV{DOCUMENTPOOL}) 133*b1cdbd2cSJim Jagielski { 134*b1cdbd2cSJim Jagielski print "overwrite default Documentpool: '$sDocumentPool'\n"; 135*b1cdbd2cSJim Jagielski print " with \$ENV{DOCUMENTPOOL}: $ENV{DOCUMENTPOOL}\n"; 136*b1cdbd2cSJim Jagielski $sDocumentPool = $ENV{DOCUMENTPOOL}; 137*b1cdbd2cSJim Jagielski } 138*b1cdbd2cSJim Jagielski else 139*b1cdbd2cSJim Jagielski { 140*b1cdbd2cSJim Jagielski print "Given \$DOCUMENTPOOL doesn't exist.\n"; 141*b1cdbd2cSJim Jagielski } 142*b1cdbd2cSJim Jagielski} 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielskimy $err = 0; 145*b1cdbd2cSJim Jagielskimy $nCompareTime = getTime(); 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski# if we want to check one file, give -pool and -document 148*b1cdbd2cSJim Jagielski# if we want to check the whole pool, give -pool 149*b1cdbd2cSJim Jagielski# if we want to check all, call without parameters 150*b1cdbd2cSJim Jagielskiif ($pool) 151*b1cdbd2cSJim Jagielski{ 152*b1cdbd2cSJim Jagielski if ($document) 153*b1cdbd2cSJim Jagielski { 154*b1cdbd2cSJim Jagielski $err = SingleDocumentCompare( $sDocumentPool, 155*b1cdbd2cSJim Jagielski $pool, 156*b1cdbd2cSJim Jagielski $document, 157*b1cdbd2cSJim Jagielski $creatortype, 158*b1cdbd2cSJim Jagielski $prepareonly, 159*b1cdbd2cSJim Jagielski $show 160*b1cdbd2cSJim Jagielski ); 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski else 163*b1cdbd2cSJim Jagielski { 164*b1cdbd2cSJim Jagielski $err = CompareFiles($sDocumentPool, $pool); 165*b1cdbd2cSJim Jagielski } 166*b1cdbd2cSJim Jagielski} 167*b1cdbd2cSJim Jagielskielse 168*b1cdbd2cSJim Jagielski{ 169*b1cdbd2cSJim Jagielski local *DIR; 170*b1cdbd2cSJim Jagielski if (opendir (DIR, $sDocumentPool)) # Directory oeffnen 171*b1cdbd2cSJim Jagielski { 172*b1cdbd2cSJim Jagielski my $myfile; 173*b1cdbd2cSJim Jagielski while ($myfile = readdir(DIR)) 174*b1cdbd2cSJim Jagielski { # ein filename holen 175*b1cdbd2cSJim Jagielski if ($myfile eq "." || 176*b1cdbd2cSJim Jagielski $myfile eq "..") 177*b1cdbd2cSJim Jagielski { 178*b1cdbd2cSJim Jagielski next; 179*b1cdbd2cSJim Jagielski } 180*b1cdbd2cSJim Jagielski my $sDocumentPath = appendPath($sDocumentPool, $myfile); 181*b1cdbd2cSJim Jagielski if ( -d $sDocumentPath ) 182*b1cdbd2cSJim Jagielski { 183*b1cdbd2cSJim Jagielski $err += CompareFiles($sDocumentPool, $myfile); 184*b1cdbd2cSJim Jagielski } 185*b1cdbd2cSJim Jagielski elsif ( -f $sDocumentPath ) 186*b1cdbd2cSJim Jagielski { 187*b1cdbd2cSJim Jagielski print "Warning: the file '$myfile' will not compared.\n"; 188*b1cdbd2cSJim Jagielski } 189*b1cdbd2cSJim Jagielski } 190*b1cdbd2cSJim Jagielski closedir(DIR); 191*b1cdbd2cSJim Jagielski } 192*b1cdbd2cSJim Jagielski # my $sPool = "eis-chart"; 193*b1cdbd2cSJim Jagielski # $err += CompareFiles($sDocumentPool, "eis-chart"); 194*b1cdbd2cSJim Jagielski # $err += CompareFiles($sDocumentPool, "eis-impress"); 195*b1cdbd2cSJim Jagielski # $err += CompareFiles($sDocumentPool, "eis-writer"); 196*b1cdbd2cSJim Jagielski # $err += CompareFiles($sDocumentPool, "eis-calc"); 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski} 199*b1cdbd2cSJim Jagielski 200*b1cdbd2cSJim JagielskiprintTime(endTime($nCompareTime)); 201*b1cdbd2cSJim Jagielskiexit ($err); 202*b1cdbd2cSJim Jagielski 203*b1cdbd2cSJim Jagielski# ------------------------------------------------------------------------------ 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielskisub CompareFiles($$) 206*b1cdbd2cSJim Jagielski{ 207*b1cdbd2cSJim Jagielski my $sDocumentPath = shift; 208*b1cdbd2cSJim Jagielski my $sPool = shift; 209*b1cdbd2cSJim Jagielski my %aFailedHash; 210*b1cdbd2cSJim Jagielski my $startdir = appendPath($sDocumentPath, $sPool); 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski local *DIR; 213*b1cdbd2cSJim Jagielski if (opendir (DIR, $startdir)) # Directory oeffnen 214*b1cdbd2cSJim Jagielski { 215*b1cdbd2cSJim Jagielski my $myfile; 216*b1cdbd2cSJim Jagielski while ($myfile = readdir(DIR)) 217*b1cdbd2cSJim Jagielski { # ein filename holen 218*b1cdbd2cSJim Jagielski if ($myfile eq "knownissues.xcl") 219*b1cdbd2cSJim Jagielski { 220*b1cdbd2cSJim Jagielski next; 221*b1cdbd2cSJim Jagielski } 222*b1cdbd2cSJim Jagielski my $sAbsoluteFile = appendPath($startdir, $myfile); 223*b1cdbd2cSJim Jagielski if (-f $sAbsoluteFile) 224*b1cdbd2cSJim Jagielski { 225*b1cdbd2cSJim Jagielski my $nIssue; 226*b1cdbd2cSJim Jagielski my $sIssueText; 227*b1cdbd2cSJim Jagielski ($nIssue, $sIssueText) = checkForKnownIssue($startdir, $myfile); 228*b1cdbd2cSJim Jagielski if ($nIssue == 0) 229*b1cdbd2cSJim Jagielski { 230*b1cdbd2cSJim Jagielski $err = SingleDocumentCompare( 231*b1cdbd2cSJim Jagielski # "/net/so-gfxcmp-documents.germany.sun.com/export/gfxcmp/document-pool", # $documentpoolpath, 232*b1cdbd2cSJim Jagielski $sDocumentPool, 233*b1cdbd2cSJim Jagielski $sPool, # $documentpool, 234*b1cdbd2cSJim Jagielski $myfile, # $documentname); 235*b1cdbd2cSJim Jagielski $creatortype, # $destinationcreatortype, 236*b1cdbd2cSJim Jagielski $prepareonly, 237*b1cdbd2cSJim Jagielski $show 238*b1cdbd2cSJim Jagielski ); 239*b1cdbd2cSJim Jagielski $aFailedHash{$myfile} = $err; 240*b1cdbd2cSJim Jagielski } 241*b1cdbd2cSJim Jagielski else 242*b1cdbd2cSJim Jagielski { 243*b1cdbd2cSJim Jagielski print "$myfile [KNOWN ISSUE: #$sIssueText#]\n"; 244*b1cdbd2cSJim Jagielski } 245*b1cdbd2cSJim Jagielski } 246*b1cdbd2cSJim Jagielski } 247*b1cdbd2cSJim Jagielski closedir(DIR); 248*b1cdbd2cSJim Jagielski } 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim Jagielski print "***** State for graphical compare of pool: '$sPool' ******\n"; 251*b1cdbd2cSJim Jagielski my $nErrorCount = 0; 252*b1cdbd2cSJim Jagielski my $file; 253*b1cdbd2cSJim Jagielski foreach $file (keys %aFailedHash) 254*b1cdbd2cSJim Jagielski { 255*b1cdbd2cSJim Jagielski if ($aFailedHash{$file} != 0) 256*b1cdbd2cSJim Jagielski { 257*b1cdbd2cSJim Jagielski print "Failed: $file\n"; 258*b1cdbd2cSJim Jagielski $nErrorCount++; 259*b1cdbd2cSJim Jagielski } 260*b1cdbd2cSJim Jagielski } 261*b1cdbd2cSJim Jagielski print "Whole unit: "; 262*b1cdbd2cSJim Jagielski if ($nErrorCount > 0) 263*b1cdbd2cSJim Jagielski { 264*b1cdbd2cSJim Jagielski print "PASSED.FAILED\n"; 265*b1cdbd2cSJim Jagielski } 266*b1cdbd2cSJim Jagielski else 267*b1cdbd2cSJim Jagielski { 268*b1cdbd2cSJim Jagielski print "PASSED.OK\n"; 269*b1cdbd2cSJim Jagielski } 270*b1cdbd2cSJim Jagielski print "************************************************************\n"; 271*b1cdbd2cSJim Jagielski return $nErrorCount; 272*b1cdbd2cSJim Jagielski} 273*b1cdbd2cSJim Jagielski# ------------------------------------------------------------------------------ 274*b1cdbd2cSJim Jagielski# return issue number if file exists in knownissues.xcl file 275*b1cdbd2cSJim Jagielskisub checkForKnownIssue($$) 276*b1cdbd2cSJim Jagielski{ 277*b1cdbd2cSJim Jagielski my $startdir = shift; 278*b1cdbd2cSJim Jagielski my $myfile = shift; 279*b1cdbd2cSJim Jagielski 280*b1cdbd2cSJim Jagielski if ($force) 281*b1cdbd2cSJim Jagielski { 282*b1cdbd2cSJim Jagielski return 0,""; 283*b1cdbd2cSJim Jagielski } 284*b1cdbd2cSJim Jagielski 285*b1cdbd2cSJim Jagielski my $sKnownIssueFile = appendPath($startdir, "knownissues.xcl"); 286*b1cdbd2cSJim Jagielski my $sIssueText = "unknown"; 287*b1cdbd2cSJim Jagielski local *ISSUES; 288*b1cdbd2cSJim Jagielski my $nIssue = 0; 289*b1cdbd2cSJim Jagielski my $sCurrentSection; 290*b1cdbd2cSJim Jagielski 291*b1cdbd2cSJim Jagielski if (open(ISSUES, $sKnownIssueFile)) 292*b1cdbd2cSJim Jagielski { 293*b1cdbd2cSJim Jagielski my $line; 294*b1cdbd2cSJim Jagielski while ($line = <ISSUES>) 295*b1cdbd2cSJim Jagielski { 296*b1cdbd2cSJim Jagielski chomp($line); 297*b1cdbd2cSJim Jagielski if ($line =~ /\[(.*)\]/ ) 298*b1cdbd2cSJim Jagielski { 299*b1cdbd2cSJim Jagielski $sCurrentSection = $1; 300*b1cdbd2cSJim Jagielski next; 301*b1cdbd2cSJim Jagielski } 302*b1cdbd2cSJim Jagielski if ($sCurrentSection eq $creatortype) 303*b1cdbd2cSJim Jagielski { 304*b1cdbd2cSJim Jagielski if ($line =~ /\#\#\# (.*) \#\#\#/ ) 305*b1cdbd2cSJim Jagielski { 306*b1cdbd2cSJim Jagielski $sIssueText = $1; 307*b1cdbd2cSJim Jagielski } 308*b1cdbd2cSJim Jagielski if ($line =~ /^${myfile}$/ ) 309*b1cdbd2cSJim Jagielski { 310*b1cdbd2cSJim Jagielski $nIssue = 1; 311*b1cdbd2cSJim Jagielski last; 312*b1cdbd2cSJim Jagielski } 313*b1cdbd2cSJim Jagielski } 314*b1cdbd2cSJim Jagielski } 315*b1cdbd2cSJim Jagielski close(ISSUES); 316*b1cdbd2cSJim Jagielski } 317*b1cdbd2cSJim Jagielski return $nIssue, $sIssueText; 318*b1cdbd2cSJim Jagielski} 319*b1cdbd2cSJim Jagielski# ------------------------------------------------------------------------------ 320*b1cdbd2cSJim Jagielskisub prepare() 321*b1cdbd2cSJim Jagielski{ 322*b1cdbd2cSJim Jagielski # directory structure: 323*b1cdbd2cSJim Jagielski # documents will be found in 324*b1cdbd2cSJim Jagielski # ../document-pool/eis-tests 325*b1cdbd2cSJim Jagielski 326*b1cdbd2cSJim Jagielski # references will be found in 327*b1cdbd2cSJim Jagielski # ../references/unxlngi/eis-tests 328*b1cdbd2cSJim Jagielski # ../references/wntmsci/eis-tests 329*b1cdbd2cSJim Jagielski 330*b1cdbd2cSJim Jagielski # output goes to 331*b1cdbd2cSJim Jagielski # ../unxlngi6.pro/misc 332*b1cdbd2cSJim Jagielski 333*b1cdbd2cSJim Jagielski if ($verbose) 334*b1cdbd2cSJim Jagielski { 335*b1cdbd2cSJim Jagielski setVerbose(); 336*b1cdbd2cSJim Jagielski } 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski # TEST 339*b1cdbd2cSJim Jagielski if (!$ENV{INPATH}) 340*b1cdbd2cSJim Jagielski { 341*b1cdbd2cSJim Jagielski if ($OSNAME eq "linux") 342*b1cdbd2cSJim Jagielski { 343*b1cdbd2cSJim Jagielski # just for debug 344*b1cdbd2cSJim Jagielski setINPATH("unxlngi6.pro"); 345*b1cdbd2cSJim Jagielski } 346*b1cdbd2cSJim Jagielski } 347*b1cdbd2cSJim Jagielski else 348*b1cdbd2cSJim Jagielski { 349*b1cdbd2cSJim Jagielski setINPATH($ENV{INPATH}); 350*b1cdbd2cSJim Jagielski } 351*b1cdbd2cSJim Jagielski 352*b1cdbd2cSJim Jagielski if (! $creatortype) 353*b1cdbd2cSJim Jagielski { 354*b1cdbd2cSJim Jagielski $creatortype= "ps"; 355*b1cdbd2cSJim Jagielski } 356*b1cdbd2cSJim Jagielski 357*b1cdbd2cSJim Jagielski my $cwd = getcwd(); 358*b1cdbd2cSJim Jagielski print "Current Directory: $cwd\n" if ($verbose); 359*b1cdbd2cSJim Jagielski my $sProjectBase; 360*b1cdbd2cSJim Jagielski if ($ENV{PRJ}) 361*b1cdbd2cSJim Jagielski { 362*b1cdbd2cSJim Jagielski # print "cwd:=$cwd\n"; 363*b1cdbd2cSJim Jagielski # print "PRJ:=$ENV{PRJ}\n"; 364*b1cdbd2cSJim Jagielski $sProjectBase = appendPath($cwd, $ENV{PRJ}); 365*b1cdbd2cSJim Jagielski } 366*b1cdbd2cSJim Jagielski else 367*b1cdbd2cSJim Jagielski { 368*b1cdbd2cSJim Jagielski $sProjectBase = dirname($cwd); 369*b1cdbd2cSJim Jagielski } 370*b1cdbd2cSJim Jagielski if ($OSNAME eq "cygwin") 371*b1cdbd2cSJim Jagielski { 372*b1cdbd2cSJim Jagielski $sProjectBase = `cygpath -w $sProjectBase`; 373*b1cdbd2cSJim Jagielski chomp($sProjectBase); 374*b1cdbd2cSJim Jagielski $sProjectBase = unixpath($sProjectBase); 375*b1cdbd2cSJim Jagielski # print "cygwin patch \$sProjectBase := $sProjectBase\n"; 376*b1cdbd2cSJim Jagielski } 377*b1cdbd2cSJim Jagielski # print "Project base path: $sProjectBase\n"; 378*b1cdbd2cSJim Jagielski setProjectRoot($sProjectBase); 379*b1cdbd2cSJim Jagielski 380*b1cdbd2cSJim Jagielski 381*b1cdbd2cSJim Jagielski # TEST TEST TEST 382*b1cdbd2cSJim Jagielski # exit (0); 383*b1cdbd2cSJim Jagielski} 384*b1cdbd2cSJim Jagielski# ------------------------------------------------------------------------------ 385*b1cdbd2cSJim Jagielskisub print_usage(*) 386*b1cdbd2cSJim Jagielski{ 387*b1cdbd2cSJim Jagielski local *HANDLE = $_[0]; 388*b1cdbd2cSJim Jagielski my $tool_name = basename($0); 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielski print(HANDLE <<END_OF_USAGE); 391*b1cdbd2cSJim Jagielski 392*b1cdbd2cSJim JagielskiUsage: $tool_name [OPTIONS] 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski -pool Give pool name out of document-pool directory. 395*b1cdbd2cSJim Jagielski But all documents list in knownissues.xcl will not check. 396*b1cdbd2cSJim Jagielski -document Give a single document to test, the known issue list will ignored. 397*b1cdbd2cSJim Jagielski -creatortype=s s:ps create postscript files via print to file. 398*b1cdbd2cSJim Jagielski s:pdf create PDF file via export to pdf. 399*b1cdbd2cSJim Jagielski -h, --help Print this help, then exit 400*b1cdbd2cSJim Jagielski -v, --version Print version number, then exit 401*b1cdbd2cSJim Jagielski 402*b1cdbd2cSJim JagielskiEND_OF_USAGE 403*b1cdbd2cSJim Jagielski; 404*b1cdbd2cSJim Jagielski} 405