#
# Copyright for URLibService (c) 1995 - 2020, # by Gerald Banon. All rights reserved. # Extracts a new version of URLibService # ---------------------------------------------------------------------- # ExtractURLibService # used by post and start proc ExtractURLibService {} { global homePath global tcl_platform # global unZipExec global unZipRepository ;# set in this procedure and used in InstallRepository and ControlBCButtonState global unZipPath ;# set in LoadGlobalVariables global URLibServiceRepository # global downloadingEnvironmentRepository ;# not used any more after 2020-04 if {$tcl_platform(platform) == "windows"} { set unZipExec unzip set unZipRepository dpi.inpe.br/banon/2000/08.09.16.24 # ... set unZipRepository dpi.inpe.br/banon-pc2@1905/2005/05.06.20.41 } if {$tcl_platform(platform) == "unix"} { if {$tcl_platform(os) == "SunOS"} { if [file exists /usr/bin/unzip] { # set unZipPath /usr/bin/unzip ;# now in knownPathArray set unZipRepository {} } else { set unZipExec unzip set unZipRepository dpi.inpe.br/banon/2000/08.09.17.10 } } elseif {$tcl_platform(os) == "Linux"} { # set unZipPath /usr/bin/unzip ;# now in knownPathArray set unZipRepository {} } elseif {$tcl_platform(os) == "FreeBSD"} { # set unZipPath /usr/local/bin/unzip ;# now in knownPathArray set unZipRepository {} } } ## unZipPath if [file isdirectory $homePath/col/$unZipRepository/doc] { # set unZipPath $homePath/col/$unZipRepository/doc/$unZipExec ;# must be homePath - now in knownPathArray if {$tcl_platform(os) == "SunOS"} { if ![file executable $homePath/col/$unZipRepository/doc/$unZipExec] { if [file owned $homePath/col/$unZipRepository/doc/$unZipExec] { exec chmod 775 $homePath/col/$unZipRepository/doc/$unZipExec } } } } if {[file isdirectory $homePath/col/$URLibServiceRepository/auxdoc] && \ [file exists $homePath/doc.zip] && \ ![file exists ../auxdoc/serverDir/logs/virtualHostRunning]} { # doc.zip exists and the virtual host is not running # UNZIP - EXTRACT packedRepositoryVersion # if ![catch {exec $unZipPath -o\ # $homePath/doc.zip packedRepository packedRepositoryVersion -d \ # $homePath/col/$URLibServiceRepository/auxdoc}] # ;# commented by GJFB in 2020-05-026 if ![catch {exec $unZipPath -o\ $homePath/doc.zip packedRepository packedRepositoryVersion -d $homePath}] { ;# added by GJFB in 2020-05-026 - simplification # packedRepository packedRepositoryVersion extracted # SimpleLoad $homePath/col/$URLibServiceRepository/auxdoc/packedRepository packedRepository ;# commented by GJFB in 2020-05-026 # SimpleLoad $homePath/col/$URLibServiceRepository/auxdoc/packedRepositoryVersion packedRepositoryVersion ;# commented by GJFB in 2020-05-026 SimpleLoad $homePath/packedRepository packedRepository ;# added by GJFB in 2020-05-026 - simplification SimpleLoad $homePath/packedRepositoryVersion packedRepositoryVersion ;# added by GJFB in 2020-05-026 - simplification # if {[string equal $URLibServiceRepository $packedRepository] || \ # [string equal $downloadingEnvironmentRepository $packedRepository]} # ## doc.zip contains URLibServiceRepository or downloadingEnvironmentRepository if [string equal $URLibServiceRepository $packedRepository] { # doc.zip contains URLibServiceRepository SimpleLoad $homePath/col/$packedRepository/service/history history set versionStamp [lindex $history end] ;# GetVersionStamp cannot be used here because at installation the global variable repositoryProperties doesn't exist yet if ![string equal $versionStamp $packedRepositoryVersion] { # doc.zip contains a different version # UNZIP puts "extracting $packedRepository..." if [catch {exec $unZipPath -ao $homePath/doc.zip -d $homePath} m] { puts "$packedRepository not extracted: $m" } else { puts "$packedRepository extracted" MakeDownloadFile $URLibServiceRepository ;# added by GJFB in 2020-04-22 - doc.zip (if any) must be updated here in order to get the right size of it in the 'Downloading the URLibService Environment' pages } if {$tcl_platform(platform) == "windows"} { set delay 0; after 2000 {set delay 1}; vwait delay ;# wait to provide a delay to display the above messages } if {$tcl_platform(platform) == "unix"} { exec chmod +x $homePath/col/$URLibServiceRepository/doc/start exec chmod +x $homePath/col/$URLibServiceRepository/doc/post if [file exists $homePath/tempDoc.zip] { # tempDoc may be created by post -- -x -u # restore doc.zip file rename -force $homePath/tempDoc.zip $homePath/doc.zip file delete $homePath/tempDoc.zip } } } } } } } # ExtractURLibService - end # ---------------------------------------------------------------------- # SimpleLoad proc SimpleLoad {filePath varName} { upvar $varName var if [catch {open $filePath r} fileId] { set var {} } else { set var [string trim [read $fileId] \n] close $fileId } } # SimpleLoad - end # ----------------------------------------------------------------------