#!/opt/casp/tools/bin/linux2/perl5/bin/perl -I/opt/casp/tools/bin/linux2/perl5/lib -I/opt/casp use INSTALL::common; use INSTALL::global; use INSTALL::parameter; use INSTALL::os; use strict; my $pParameters = \%INSTALL::parameter::variables; #============================================================================== #------------------------ Make sure that the user is a root #============================================================================== if ($> != 0) { print STDOUT "You will need to be root to execute this script.\n"; exit 1; } #============================================================================== #------------------------ Default global values #============================================================================== $pParameters->{asphome} = "/opt/casp"; $pParameters->{com_layer} = "chilicom"; INSTALL::common::set_standard_globals; my $pGlobals = \%INSTALL::global::variables; my $pOS = \%INSTALL::os::Details; #============================================================================== #------------------------ Validate all the required parameters. #============================================================================== my %PARAM_REQUIREMENTS = ( REQUIRED => [ 'webserver_(conf|path)' ], ); unless(INSTALL::parameter::verify(%PARAM_REQUIREMENTS)) { exit (1); } sub rescan_webserver_cache { # die "Error: Invalid number of parameters (must be 1)."; ($#_ == 0) || return undef; my $cache_file = $_[0]; my $def = INSTALL::ini::load("$cache_file"); if (!$def) { # fatal_error("Webserver cache file could not be loaded - $"); return undef; } my $pSectionOrder = [INSTALL::ini::getSectionNames($def)]; my $webservers; foreach my $section_name (@$pSectionOrder) { # print STDOUT "$section_name\n"; my $psec = INSTALL::ini::openSection($def, $section_name); if (!$psec) { # fatal_error("Definition file format is not correct - $section"); return undef; } $webservers .= "$psec->{webserver_type}/$psec->{webserver_version} "; } # print STDOUT "$psec->{webserver_type}/$psec->{webserver_version}\n"; return $webservers; } sub install_license { my ($key) = @_; if ((not exists $ENV{WEBSERVER_TYPES}) && (-f "$pGlobals->{asphome}/INSTALL/.webserver_cache")) { $ENV{WEBSERVER_TYPES} = rescan_webserver_cache("$pGlobals->{asphome}/INSTALL/.webserver_cache"); } my $command = "$pGlobals->{bin_dir}/installkey $pGlobals->{asphome}/LICENSE $key CASP $pGlobals->{casp_version}"; my $ret = system_log($command); return(($key eq "none") || not $ret); } #============================================================================== #------------------------ Configure webserver. #============================================================================== use INSTALL::webserver; if (INSTALL::webserver::configure) { if (interactive) { my $complete_text = " "; $complete_text .= ( "Your server was successfully configured. Its information is as follows:\n". $pGlobals->{summary_text} ); INSTALL::query::user_menu ( "SERVER CONFIGURATION COMPLETE", $complete_text ); } # Make sure that the user at least has an EVAL license. install_license("EVAL"); exit(0); } elsif (interactive) { report("Status: ","Server installation canceled."); } exit(1);