Moved knowledge of "koha.conf.tmp" to the Install.pm
[koha.git] / misc / installer.pl
index cfef72b..e486608 100644 (file)
@@ -5,8 +5,27 @@
 use Install;
 use strict; # please develop with the strict pragma
 
+use vars qw( $input );
+
+Install::setlanguage 'en';
+
+my $domainname = `hostname`; # Note: must not have any arguments (portability)
+if ($domainname =~ /^[^\s\.]+\.([-a-z0-9\.]+)$/) {
+   $domainname = $1;
+} else {
+   undef $domainname;
+   if (open(INPUT, "</etc/resolv.conf")) {
+      while (<INPUT>) {
+        $domainname = $1 if /^domain\s+([-a-z0-9\.]+)\s*$/i;
+      last if defined $domainname;
+      }
+      close INPUT;
+   }
+}
+Install::setdomainname $domainname;
 
-$::language='en';
+my $etcdir = '/etc';
+Install::setetcdir $etcdir;
 
 unless ($< == 0) {
     print "You must be root to run this script.\n";
@@ -22,27 +41,30 @@ EOP
    exit 1;
 }
 
-$::kohaversion=`cat koha.version`;
-chomp $::kohaversion;
+my $kohaversion=`cat koha.version`;
+chomp $kohaversion;
+Install::setkohaversion $kohaversion;
 
 
-if ($::kohaversion =~ /RC/) {
+if ($kohaversion =~ /RC/) {
     releasecandidatewarning();
 }
 
-if (-e "/etc/koha.conf") {
-    $::installedversion=`grep kohaversion= /etc/koha.conf`;
-    chomp $::installedversion;
-    $::installedversion=~m/kohaversion=(.*)/;
-    $::installedversion=$1;
+checkabortedinstall();
+
+if (-e "$etcdir/koha.conf") {
+    my $installedversion=`grep kohaversion= $etcdir/koha.conf`;
+    chomp $installedversion;
+    $installedversion=~m/kohaversion=(.*)/;
+    $installedversion=$1;
     my $installedversionmsg;
-    if ($::installedversion) {
-       $installedversionmsg=getmessage('KohaVersionInstalled', [$::installedversion]);
+    if ($installedversion) {
+       $installedversionmsg=getmessage('KohaVersionInstalled', [$installedversion]);
     } else {
        $installedversionmsg=getmessage('KohaUnknownVersionInstalled');
     }
 
-    my $message=getmessage('KohaAlreadyInstalled', [$::kohaversion, $installedversionmsg]);
+    my $message=getmessage('KohaAlreadyInstalled', [$etcdir, $kohaversion, $installedversionmsg]);
     showmessage($message, 'none');
     exit;
 }
@@ -56,21 +78,15 @@ if ($answer eq "Y" || $answer eq "y") {
        print $continuingmsg;
     } else {
     print qq|
-This installer currently does not support a completely automated 
+This installer currently does not support a completely automated
 setup.
 
-Please be sure to read the documentation, or visit the Koha website 
+Please be sure to read the documentation, or visit the Koha website
 at http://www.koha.org for more information.
 |;
     exit;
 };
 
-my $input;
-$::domainname = `hostname -d`;
-chomp $::domainname;
-$::etcdir = '/etc';
-
-
 # Check for missing Perl Modules
 checkperlmodules();
 
@@ -91,28 +107,28 @@ installfiles();
 
 databasesetup();
 
-restartapache();
+updatedatabase();
 
+populatedatabase();
 
-# Installation is complete.  Rename the koha.conf.tmp file
+finalizeconfigfile();
 
-rename "$::etcdir/koha.conf.tmp", "$::etcdir/koha.conf" || warn "Couldn't rename file at $::etcdir. Must have write capability.\n";
+restartapache();
 
 
-updatedatabase();
 
-populatedatabase();
 
-showmessage(getmessage('AuthenticationWarning'), 'PressEnter');
+showmessage(getmessage('AuthenticationWarning', [$etcdir]), 'PressEnter');
 
 
-showmessage(getmessage('Completed', [ $::servername, $::intranetport, $::servername, $::opacport]), 'PressEnter');
+showmessage(getmessage('Completed', [ Install::getservername(), Install::getintranetport(), Install::getservername(), Install::getopacport()]), 'PressEnter');
 
 
 
 
-my $reply=showmessage('Would you like to complete a survey about your library?', 'yn', 'y');
-if ($reply=~/y/i) {
-    system("perl kohareporter");
+if (-f "kohareporter") {
+    my $reply=showmessage('Would you like to complete a survey about your library?', 'yn', 'y');
+    if ($reply=~/y/i) {
+       system("perl kohareporter");
+    }
 }
-