From 55a4367f81127b8d73deebb55c0ac59a2fc5e033 Mon Sep 17 00:00:00 2001 From: tonnesen Date: Wed, 24 Jul 2002 22:23:13 +0000 Subject: [PATCH] A bit further on modularizing intaller.pl --- Install.pm | 340 +++++++++++++++++++++++++++++++++++++++++++++------ installer.pl | 322 ++++++++++-------------------------------------- 2 files changed, 370 insertions(+), 292 deletions(-) diff --git a/Install.pm b/Install.pm index ed4c7de0ea..96724a4506 100644 --- a/Install.pm +++ b/Install.pm @@ -17,6 +17,8 @@ $VERSION = 0.01; &getdatabaseinfo &getapacheinfo &getapachevhostinfo + &updateapacheconf + &basicauthentication ); @@ -238,6 +240,36 @@ sub showmessage { ($response) || ($response=$defaultresponse); return $response; } + if ($responsetype =~/^numerical$/i) { + (defined($defaultresponse)) || ($defaultresponse=''); + my $response=''; + until ($response=~/^\d+$/) { + $response=; + chomp $response; + ($response) || ($response=$defaultresponse); + unless ($response=~/^\d+$/) { + ($noclear) || (system('clear')); + print "Invalid Response ($response). Response must be a number.\n\n"; + print $message; + } + } + return $response; + } + if ($responsetype =~/^email$/i) { + (defined($defaultresponse)) || ($defaultresponse=''); + my $response=''; + until ($response=~/.*\@.*\..*/) { + $response=; + chomp $response; + ($response) || ($response=$defaultresponse); + unless ($response=~/.*\@.*\..*/) { + ($noclear) || (system('clear')); + print "Invalid Response ($response). Response must be a valid email address.\n\n"; + print $message; + } + } + return $response; + } if ($responsetype =~/^PressEnter$/i) { ; return; @@ -249,29 +281,29 @@ sub showmessage { } sub getinstallationdirectories { - my $opacdir = '/usr/local/koha/opac'; - my $intranetdir = '/usr/local/koha/intranet'; + $::opacdir = '/usr/local/koha/opac'; + $::intranetdir = '/usr/local/koha/intranet'; my $getdirinfo=1; while ($getdirinfo) { # Loop until opac directory and koha directory are different - my $message=getmessage('GetOpacDir', [$opacdir]); - $opacdir=showmessage($message, 'free', $opacdir); + my $message=getmessage('GetOpacDir', [$::opacdir]); + $::opacdir=showmessage($message, 'free', $::opacdir); - my $message=getmessage('GetIntranetDir', [$intranetdir]); - $intranetdir=showmessage($message, 'free', $intranetdir); + $message=getmessage('GetIntranetDir', [$::intranetdir]); + $::intranetdir=showmessage($message, 'free', $::intranetdir); - if ($intranetdir eq $opacdir) { + if ($::intranetdir eq $::opacdir) { print qq| You must specify different directories for the OPAC and INTRANET files! - :: $intranetdir :: $opacdir :: + :: $::intranetdir :: $::opacdir :: |; } else { $getdirinfo=0; } } - return ($opacdir, $intranetdir); + return ($::opacdir, $::intranetdir); } @@ -325,6 +357,12 @@ Press to try again: |; sub getdatabaseinfo { + + $::dbname = 'Koha'; + $::hostname = 'localhost'; + $::user = 'kohaadmin'; + $::pass = ''; + #Get the database name my $message=getmessage('DatabaseName', [$::dbname]); @@ -472,22 +510,14 @@ sub getapacheinfo { } print "AU: $::httpduser\n"; } - exit; } -sub getapachevhostinfo { - - my $svr_admin = "webmaster\@$::domainname"; - my $servername=`hostname -f`; - chomp $servername; - my $opacport=80; - my $kohaport=8080; - - print qq| +$messages->{'ApacheConfigIntroduction'}->{en}=qq| +======================== += APACHE CONFIGURATION = +======================== -OPAC and KOHA/LIBRARIAN CONFIGURATION -===================================== Koha needs to setup your Apache configuration file for the OPAC and LIBRARIAN virtual hosts. By default this installer will do this by using one ip address and two different ports @@ -495,38 +525,274 @@ for the virtual hosts. There are other ways to set this up, and the installer will leave comments in httpd.conf detailing what these other options are. -Please enter the e-mail address for your webserver admin. -Usually $svr_admin -|; - print "Enter e-mail address [$svr_admin]:"; - #$svr_admin = $input; +Press to continue: |; + +$messages->{'GetVirtualHostEmail'}->{en}=qq| +============================= += WEB SERVER E-MAIL CONTACT = +============================= +Enter the e-mail address to be used as a contact for the virtual hosts (this +address is displayed if any errors are encountered). - print qq| +E-mail contact [%s]: |; +$messages->{'GetServerName'}->{en}=qq| +====================================== += WEB SERVER HOST NAME OR IP ADDRESS = +====================================== Please enter the domain name or ip address of your computer. -|; - #$servername = $input; - print qq| +Host name or IP Address [%s]: |; -Please enter the port for your OPAC interface. -|; - print "Enter OPAC port [$opacport]:"; - #$opacport = $input; +$messages->{'GetOpacPort'}->{en}=qq| +========================== += OPAC VIRTUAL HOST PORT = +========================== + +Please enter the port for your OPAC interface. This defaults to port 80, but +if you are already serving web content from this server, you should change it +to a different port (8000 might be a good choice). - print qq| +Enter the OPAC Port [%s]: |; + +$messages->{'GetIntranetPort'}->{en}=qq| +============================== += INTRANET VIRTUAL HOST PORT = +============================== -Please enter the port for your Intranet/Librarian interface. +Please enter the port for your Intranet interface. This must be different from +the OPAC port (%s). + +Enter the Intranet Port [%s]: |; + + +sub getapachevhostinfo { + + $::svr_admin = "webmaster\@$::domainname"; + $::servername=`hostname -f`; + chomp $::servername; + $::opacport=80; + $::intranetport=8080; + + showmessage(getmessage('ApacheConfigIntroduction'), 'PressEnter'); + + $::svr_admin=showmessage(getmessage('GetVirtualHostEmail', [$::svr_admin]), 'email', $::svr_admin); + $::servername=showmessage(getmessage('GetServerName', [$::servername]), 'free', $::servername); + + + $::opacport=showmessage(getmessage('GetOpacPort', [$::opacport]), 'numerical', $::opacport); + $::intranetport=showmessage(getmessage('GetIntranetPort', [$::opacport, $::intranetport]), 'numerical', $::intranetport); + +} + +$messages->{'StartUpdateApache'}->{en}=qq| +================================= += UPDATING APACHE CONFIGURATION = +================================= + +Checking for modules that need to be loaded... |; - #$kohaport = $input; +$messages->{'LoadingApacheModuleModEnv'}->{en}="Loading SetEnv Apache module.\n"; + +$messages->{'LoadingApacheModuleModInc'}->{en}="Loading Includes Apache module.\n"; + +$messages->{'ApacheConfigBackupFailed'}->{en}=qq| +====================================== += APACHE CONFIGURATION BACKUP FAILED = +====================================== + +An error occurred while trying to make a backup copy of %s. + + %s + +No changes will be made to the apache configuration file at this time. + +Press to continue: |; + + +$messages->{'ApacheAlreadyConfigured'}->{en}=qq| +$::realhttpdconf appears to already have an entry for Koha +Virtual Hosts. You may need to edit $::realhttpdconf +f anything has changed since it was last set up. This +script will not attempt to modify an existing Koha apache +configuration. + +Press to continue: |; + +sub updateapacheconf { + my $logfiledir=`grep ^ErrorLog $::realhttpdconf`; + chomp $logfiledir; + + if ($logfiledir) { + $logfiledir=~m#ErrorLog (.*)/[^/]*$#; + $logfiledir=$1; + } + + unless ($logfiledir) { + $logfiledir='logs'; + } + + showmessage(getmessage('StartUpdateApache'), 'none'); + + my $httpdconf; + my $envmodule=0; + my $includesmodule=0; + open HC, $::realhttpdconf; + while () { + if (/^\s*#\s*LoadModule env_module /) { + s/^\s*#\s*//; + showmessage(getmessage('LoadingApacheModuleModEnv')); + $envmodule=1; + } + if (/^\s*#\s*LoadModule includes_module /) { + s/^\s*#\s*//; + showmessage(getmessage('LoadingApacheModuleModInc')); + } + if (/\s*LoadModule includes_module / ) { + $includesmodule=1; + } + $httpdconf.=$_; + } + + my $backupfailed=0; + $backupfailed=`cp -f $::realhttpdconf $::realhttpdconf\.prekoha`; + if ($backupfailed) { + showmessage(getmessage('ApacheConfigBackupFailed', [$::realhttpdconf,$backupfailed ]), 'PressEnter'); + return; + } + + if ($envmodule || $includesmodule) { + open HC, ">$::realhttpdconf"; + print HC $httpdconf; + close HC; + } + + if (`grep 'VirtualHost $::servername' $::realhttpdconf`) { + showmessage(getmessage('ApacheAlreadyConfigured'), 'PressEnter'); + return; + } else { + my $includesdirectives=''; + if ($includesmodule) { + $includesdirectives.="Options +Includes\n"; + $includesdirectives.=" AddHandler server-parsed .html\n"; + } + open(SITE,">>$::realhttpdconf") or warn "Insufficient priveleges to open $::realhttpdconf for writing.\n"; + my $opaclisten = ''; + if ($::opacport != 80) { + $opaclisten="Listen $::opacport"; + } + my $intranetlisten = ''; + if ($::intranetport != 80) { + $intranetlisten="Listen $::intranetport"; + } + print SITE < + ServerAdmin $::svr_admin + DocumentRoot $::opacdir/htdocs + ServerName $::servername + ScriptAlias /cgi-bin/koha/ $::opacdir/cgi-bin/ + ErrorLog $logfiledir/opac-error_log + TransferLog $logfiledir/opac-access_log + SetEnv PERL5LIB "$::intranetdir/modules" + $includesdirectives + + +# KOHA's INTRANET Configuration + + ServerAdmin $::svr_admin + DocumentRoot $::intranetdir/htdocs + ServerName $::servername + ScriptAlias /cgi-bin/koha/ "$::intranetdir/cgi-bin/" + ErrorLog $logfiledir/koha-error_log + TransferLog $logfiledir/koha-access_log + SetEnv PERL5LIB "$::intranetdir/modules" + $includesdirectives + + +# If you want to use name based Virtual Hosting: +# 1. remove the two Listen lines +# 2. replace $::servername\:$::opacport wih your.opac.domain.name +# 3. replace ServerName $::servername wih ServerName your.opac.domain.name +# 4. replace $::servername\:$::intranetport wih your intranet domain name +# 5. replace ServerName $::servername wih ServerName your.intranet.domain.name +# +# If you want to use NameVirtualHost'ing (using two names on one ip address): +# 1. Follow steps 1-5 above +# 2. Uncomment the NameVirtualHost line and set the correct ip address + +EOP + + + } } +$messages->{'IntranetAuthenticationQuestion'}->{en}=qq| +=========================== += INTRANET AUTHENTICATION = +=========================== + +I can set it up so that the Intranet/Librarian site is password protected using +Apache's Basic Authorization. + +Would you like to do this ([Y]/N): |; + +$messages->{'BasicAuthUsername'}->{en}="Please enter a userid for intranet access [%s]: "; +$messages->{'BasicAuthPassword'}->{en}="Please enter a password for %s: "; +$messages->{'BasicAuthPasswordWasBlank'}->{en}="\nYou cannot use a blank password!\n\n"; + +sub basicauthentication { + my $message=getmessage('IntranetAuthenticationQuestion'); + my $answer=showmessage($message, 'yn', 'y'); + + my $apacheauthusername='librarian'; + my $apacheauthpassword=''; + if ($answer=~/^y/i) { + ($apacheauthusername) = showmessage(getmessage('BasicAuthUsername', [ $apacheauthusername]), 'free', $apacheauthusername, 1); + $apacheauthusername=~s/[^a-zA-Z0-9]//g; + while (! $apacheauthpassword) { + ($apacheauthpassword) = showmessage(getmessage('BasicAuthPassword', [ $apacheauthusername]), 'free', 1); + if (!$apacheauthpassword) { + ($apacheauthpassword) = showmessage(getmessage('BasicAuthPasswordWasBlank'), 'none', '', 1); + } + } + open AUTH, ">/etc/kohaintranet.pass"; + my $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + my $salt=substr($chars, int(rand(length($chars))),1); + $salt.=substr($chars, int(rand(length($chars))),1); + print AUTH $apacheauthusername.":".crypt($apacheauthpassword, $salt)."\n"; + close AUTH; + open(SITE,">>$::realhttpdconf") or warn "Insufficient priveleges to open $::realhttpdconf for writing.\n"; + print SITE < + AuthUserFile /etc/kohaintranet.pass + AuthType Basic + AuthName "Koha Intranet (for librarians only)" + Require valid-user + +EOP + } + close(SITE); +} + + + END { } # module clean-up code here (global destructor) diff --git a/installer.pl b/installer.pl index 53eba7d36a..b64da9d021 100644 --- a/installer.pl +++ b/installer.pl @@ -72,212 +72,24 @@ checkperlmodules(); # Ask for installation directories -my ($opacdir, $intranetdir) = getinstallationdirectories(); - - - +getinstallationdirectories(); $::etcdir = '/etc'; - - -$::dbname = 'Koha'; -$::hostname = 'localhost'; -$::user = 'kohaadmin'; -$::pass = ''; - - getdatabaseinfo(); - - getapacheinfo(); - -print "user: $::httpduser\n"; -print "conf: $::realhttpdconf\n"; -exit; - getapachevhostinfo(); -# -# Update Apache Conf File. -# -# - -my $logfiledir=`grep ^ErrorLog $$::realhttpdconf`; -chomp $logfiledir; - -if ($logfiledir) { - $logfiledir=~m#ErrorLog (.*)/[^/]*$#; - $logfiledir=$1; -} - -unless ($logfiledir) { - $logfiledir='logs'; -} -print qq| - -UPDATING APACHE.CONF -==================== - -|; +updateapacheconf(); -print "Checking for modules that need to be loaded...\n"; -my $httpdconf=''; -my $envmodule=0; -my $includesmodule=0; -open HC, $$::realhttpdconf; -while () { - if (/^\s*#\s*LoadModule env_module /) { - s/^\s*#\s*//; - print " Loading env_module in httpd.conf\n"; - $envmodule=1; - } - if (/^\s*#\s*LoadModule includes_module /) { - s/^\s*#\s*//; - print " Loading includes_module in httpd.conf\n"; - } - if (/\s*LoadModule includes_module / ) { - $includesmodule=1; - } - $httpdconf.=$_; -} - -my $apachebackupmade=0; -if ($envmodule || $includesmodule) { - system("mv -f $$::realhttpdconf $$::realhttpdconf\.prekoha"); - $apachebackupmade=1; - open HC, ">$$::realhttpdconf"; - print HC $httpdconf; - close HC; -} +basicauthentication(); -if (0) { -#if (`grep 'VirtualHost $servername' $$::realhttpdconf`) { -# print qq| -#$$::realhttpdconf appears to already have an entry for Koha -#Virtual Hosts. You may need to edit $$::realhttpdconf -#if anything has changed since it was last set up. This -#script will not attempt to modify an existing Koha apache -#configuration. -# -#|; - print "Press to continue..."; - ; - print "\n"; -} else { - unless ($apachebackupmade) { - system("cp -f $$::realhttpdconf $$::realhttpdconf\.prekoha"); - } - my $includesdirectives=''; - if ($includesmodule) { - $includesdirectives.="Options +Includes\n"; - $includesdirectives.=" AddHandler server-parsed .html\n"; - } - open(SITE,">>$$::realhttpdconf") or warn "Insufficient priveleges to open $$::realhttpdconf for writing.\n"; -# print SITE < -# ServerAdmin $svr_admin -# DocumentRoot $opacdir/htdocs -# ServerName $servername -# ScriptAlias /cgi-bin/koha/ $opacdir/cgi-bin/ -# ErrorLog $logfiledir/opac-error_log -# TransferLog $logfiledir/opac-access_log -# SetEnv PERL5LIB "$intranetdir/modules" -# $includesdirectives -# -# -## KOHA's INTRANET Configuration -# -# ServerAdmin $svr_admin -# DocumentRoot $intranetdir/htdocs -# ServerName $servername -# ScriptAlias /cgi-bin/koha/ "$intranetdir/cgi-bin/" -# ErrorLog $logfiledir/koha-error_log -# TransferLog $logfiledir/koha-access_log -# SetEnv PERL5LIB "$intranetdir/modules" -# $includesdirectives -# -# -## If you want to use name based Virtual Hosting: -## 1. remove the two Listen lines -## 2. replace $servername\:$opacport wih your.opac.domain.name -## 3. replace ServerName $servername wih ServerName your.opac.domain.name -## 4. replace $servername\:$kohaport wih your intranet domain name -## 5. replace ServerName $servername wih ServerName your.intranet.domain.name -## -## If you want to use NameVirtualHost'ing (using two names on one ip address): -## 1. Follow steps 1-5 above -## 2. Uncomment the NameVirtualHost line and set the correct ip address -# -#EOP -#; - - - print qq| - -Intranet Authentication -======================= - -I can set it up so that the Intranet/Librarian site is password protected. -|; -print "Would you like to do this? ([Y]/N): "; -chomp($input = ); - -my $apacheauthusername='librarian'; -my $apacheauthpassword=''; -unless ($input=~/^n/i) { - print "\nEnter a userid to login with [$apacheauthusername]: "; - chomp ($input = ); - if ($input) { - $apacheauthusername=$input; - $apacheauthusername=~s/[^a-zA-Z0-9]//g; - } - while (! $apacheauthpassword) { - print "\nEnter a password for the $apacheauthusername user: "; - chomp ($input = ); - if ($input) { - $apacheauthpassword=$input; - } - if (!$apacheauthpassword) { - print "\nPlease enter a password.\n"; - } - } - open AUTH, ">/etc/kohaintranet.pass"; - my $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - my $salt=substr($chars, int(rand(length($chars))),1); - $salt.=substr($chars, int(rand(length($chars))),1); - print AUTH $apacheauthusername.":".crypt($apacheauthpassword, $salt)."\n"; - close AUTH; - print SITE < - AuthUserFile /etc/kohaintranet.pass - AuthType Basic - AuthName "Koha Intranet (for librarians only)" - Require valid-user - -EOP -} - - close(SITE); +exit; - print "Successfully updated Apache Configuration file.\n"; -} print qq| @@ -317,11 +129,11 @@ CREATING REQUIRED DIRECTORIES |; -unless ( -d $intranetdir ) { - print "Creating $intranetdir...\n"; - my $result=mkdir ($intranetdir, oct(770)); +unless ( -d $::intranetdir ) { + print "Creating $::intranetdir...\n"; + my $result=mkdir ($::intranetdir, oct(770)); if ($result==0) { - my @dirs = split(m#/#, $intranetdir); + my @dirs = split(m#/#, $::intranetdir); my $checkdir=''; foreach (@dirs) { $checkdir.="$_/"; @@ -330,30 +142,30 @@ unless ( -d $intranetdir ) { } } } - chown (oct(0), (getgrnam($::httpduser))[2], "$intranetdir"); - chmod (oct(770), "$intranetdir"); + chown (oct(0), (getgrnam($::httpduser))[2], "$::intranetdir"); + chmod (oct(770), "$::intranetdir"); } -unless ( -d "$intranetdir/htdocs" ) { - print "Creating $intranetdir/htdocs...\n"; - mkdir ("$intranetdir/htdocs", oct(750)); +unless ( -d "$::intranetdir/htdocs" ) { + print "Creating $::intranetdir/htdocs...\n"; + mkdir ("$::intranetdir/htdocs", oct(750)); } -unless ( -d "$intranetdir/cgi-bin" ) { - print "Creating $intranetdir/cgi-bin...\n"; - mkdir ("$intranetdir/cgi-bin", oct(750)); +unless ( -d "$::intranetdir/cgi-bin" ) { + print "Creating $::intranetdir/cgi-bin...\n"; + mkdir ("$::intranetdir/cgi-bin", oct(750)); } -unless ( -d "$intranetdir/modules" ) { - print "Creating $intranetdir/modules...\n"; - mkdir ("$intranetdir/modules", oct(750)); +unless ( -d "$::intranetdir/modules" ) { + print "Creating $::intranetdir/modules...\n"; + mkdir ("$::intranetdir/modules", oct(750)); } -unless ( -d "$intranetdir/scripts" ) { - print "Creating $intranetdir/scripts...\n"; - mkdir ("$intranetdir/scripts", oct(750)); +unless ( -d "$::intranetdir/scripts" ) { + print "Creating $::intranetdir/scripts...\n"; + mkdir ("$::intranetdir/scripts", oct(750)); } -unless ( -d $opacdir ) { - print "Creating $opacdir...\n"; - my $result=mkdir ($opacdir, oct(770)); +unless ( -d $::opacdir ) { + print "Creating $::opacdir...\n"; + my $result=mkdir ($::opacdir, oct(770)); if ($result==0) { - my @dirs = split(m#/#, $opacdir); + my @dirs = split(m#/#, $::opacdir); my $checkdir=''; foreach (@dirs) { $checkdir.="$_/"; @@ -362,37 +174,37 @@ unless ( -d $opacdir ) { } } } - chown (oct(0), (getgrnam($::httpduser))[2], "$opacdir"); - chmod (oct(770), "$opacdir"); + chown (oct(0), (getgrnam($::httpduser))[2], "$::opacdir"); + chmod (oct(770), "$::opacdir"); } -unless ( -d "$opacdir/htdocs" ) { - print "Creating $opacdir/htdocs...\n"; - mkdir ("$opacdir/htdocs", oct(750)); +unless ( -d "$::opacdir/htdocs" ) { + print "Creating $::opacdir/htdocs...\n"; + mkdir ("$::opacdir/htdocs", oct(750)); } -unless ( -d "$opacdir/cgi-bin" ) { - print "Creating $opacdir/cgi-bin...\n"; - mkdir ("$opacdir/cgi-bin", oct(750)); +unless ( -d "$::opacdir/cgi-bin" ) { + print "Creating $::opacdir/cgi-bin...\n"; + mkdir ("$::opacdir/cgi-bin", oct(750)); } print "\n\nINSTALLING KOHA...\n"; print "\n\n==================\n"; -print "Copying internet-html files to $intranetdir/htdocs...\n"; -system("cp -R intranet-html/* $intranetdir/htdocs/"); -print "Copying intranet-cgi files to $intranetdir/cgi-bin...\n"; -system("cp -R intranet-cgi/* $intranetdir/cgi-bin/"); -print "Copying script files to $intranetdir/scripts...\n"; -system("cp -R scripts/* $intranetdir/scripts/"); -print "Copying module files to $intranetdir/modules...\n"; -system("cp -R modules/* $intranetdir/modules/"); -print "Copying opac-html files to $opacdir/htdocs...\n"; -system("cp -R opac-html/* $opacdir/htdocs/"); -print "Copying opac-cgi files to $opacdir/cgi-bin...\n"; -system("cp -R opac-cgi/* $opacdir/cgi-bin/"); - -system("chown -R root.$::httpduser $opacdir"); -system("chown -R root.$::httpduser $intranetdir"); +print "Copying internet-html files to $::intranetdir/htdocs...\n"; +system("cp -R intranet-html/* $::intranetdir/htdocs/"); +print "Copying intranet-cgi files to $::intranetdir/cgi-bin...\n"; +system("cp -R intranet-cgi/* $::intranetdir/cgi-bin/"); +print "Copying script files to $::intranetdir/scripts...\n"; +system("cp -R scripts/* $::intranetdir/scripts/"); +print "Copying module files to $::intranetdir/modules...\n"; +system("cp -R modules/* $::intranetdir/modules/"); +print "Copying opac-html files to $::opacdir/htdocs...\n"; +system("cp -R opac-html/* $::opacdir/htdocs/"); +print "Copying opac-cgi files to $::opacdir/cgi-bin...\n"; +system("cp -R opac-cgi/* $::opacdir/cgi-bin/"); + +system("chown -R root.$::httpduser $::opacdir"); +system("chown -R root.$::httpduser $::intranetdir"); print qq| @@ -412,9 +224,9 @@ database=$::dbname hostname=$::hostname user=$::user pass=$::pass -includes=$intranetdir/htdocs/includes -intranetdir=$intranetdir -opacdir=$opacdir +includes=$::intranetdir/htdocs/includes +intranetdir=$::intranetdir +opacdir=$::opacdir kohalogdir=$kohalogdir kohaversion=$::kohaversion httpduser=$::httpduser @@ -488,7 +300,7 @@ if ($result) { system("$mysqldir/bin/mysql -u$mysqluser -p$mysqlpass mysql -e \"insert into db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv, index_priv, alter_priv) values ('%','$::dbname','$::user','Y','Y','Y','Y','Y','Y','Y','Y')\""); system("$mysqldir/bin/mysqladmin -u$mysqluser -p$mysqlpass reload"); - system ("perl -I $intranetdir/modules scripts/updater/updatedatabase"); + system ("perl -I $::intranetdir/modules scripts/updater/updatedatabase"); print qq| @@ -580,19 +392,19 @@ chown((getpwnam($::httpduser)) [2,3], $kohalogdir) or warn "can't chown $kohalog # LAUNCH SCRIPT print "Modifying Z39.50 daemon launch script...\n"; my $newfile=''; -open (L, "$intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh"); +open (L, "$::intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh"); while () { if (/^RunAsUser=/) { $newfile.="RunAsUser=$::httpduser\n"; } elsif (/^KohaZ3950Dir=/) { - $newfile.="KohaZ3950Dir=$intranetdir/scripts/z3950daemon\n"; + $newfile.="KohaZ3950Dir=$::intranetdir/scripts/z3950daemon\n"; } else { $newfile.=$_; } } close L; -system("mv $intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh $intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh.orig"); -open L, ">$intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh"; +system("mv $::intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh $::intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh.orig"); +open L, ">$::intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh"; print L $newfile; close L; @@ -600,12 +412,12 @@ close L; # SHELL SCRIPT print "Modifying Z39.50 daemon wrapper script...\n"; $newfile=''; -open (S, "$intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh"); +open (S, "$::intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh"); while () { if (/^KohaModuleDir=/) { - $newfile.="KohaModuleDir=$intranetdir/modules\n"; + $newfile.="KohaModuleDir=$::intranetdir/modules\n"; } elsif (/^KohaZ3950Dir=/) { - $newfile.="KohaZ3950Dir=$intranetdir/scripts/z3950daemon\n"; + $newfile.="KohaZ3950Dir=$::intranetdir/scripts/z3950daemon\n"; } elsif (/^LogDir=/) { $newfile.="LogDir=$kohalogdir\n"; } else { @@ -614,15 +426,15 @@ while () { } close S; -system("mv $intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh $intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh.orig"); -open S, ">$intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh"; +system("mv $::intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh $::intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh.orig"); +open S, ">$::intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh"; print S $newfile; close S; -chmod 0750, "$intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh"; -chmod 0750, "$intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh"; -chmod 0750, "$intranetdir/scripts/z3950daemon/processz3950queue"; -chown(0, (getpwnam($::httpduser)) [3], "$intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh") or warn "can't chown $intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh: $!"; -chown(0, (getpwnam($::httpduser)) [3], "$intranetdir/scripts/z3950daemon/processz3950queue") or warn "can't chown $intranetdir/scripts/z3950daemon/processz3950queue: $!"; +chmod 0750, "$::intranetdir/scripts/z3950daemon/z3950-daemon-launch.sh"; +chmod 0750, "$::intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh"; +chmod 0750, "$::intranetdir/scripts/z3950daemon/processz3950queue"; +chown(0, (getpwnam($::httpduser)) [3], "$::intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh") or warn "can't chown $::intranetdir/scripts/z3950daemon/z3950-daemon-shell.sh: $!"; +chown(0, (getpwnam($::httpduser)) [3], "$::intranetdir/scripts/z3950daemon/processz3950queue") or warn "can't chown $::intranetdir/scripts/z3950daemon/processz3950queue: $!"; print qq| -- 2.39.5