Minor updates
[koha.git] / misc / installer.pl
index 17ad562..10cd8f8 100644 (file)
@@ -7,17 +7,33 @@ use strict; # please develop with the strict pragma
 
 use vars qw( $input );
 
-$::language='en';
-$::domainname = `hostname -d`;
-chomp $::domainname;
-$::etcdir = '/etc';
-
-
-unless ($< == 0) {
-    print "You must be root to run this script.\n";
-    exit 1;
+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;
+   }
+   elsif (open(INPUT, "</etc/hostname")) {
+      $domainname = <INPUT>;
+   }
 }
+Install::setdomainname $domainname;
 
+###############################################
+# SET  THE  etcdir  ENVIRONMENT  VAR  INSTEAD #
+###############################################
+my $etcdir = $ENV{etcdir}||'/etc';
+system("mkdir -p $etcdir");
+
+Install::setetcdir $etcdir;
 
 unless (-d 'intranet-html') {
    print <<EOP;
@@ -27,29 +43,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();
 }
 
 checkabortedinstall();
 
-if (-e "$::etcdir/koha.conf") {
-    $::installedversion=`grep kohaversion= $::etcdir/koha.conf`;
-    chomp $::installedversion;
-    $::installedversion=~m/kohaversion=(.*)/;
-    $::installedversion=$1;
+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', [$::etcdir, $::kohaversion, $installedversionmsg]);
+    my $message=getmessage('KohaAlreadyInstalled', [$etcdir, $kohaversion, $installedversionmsg]);
     showmessage($message, 'none');
     exit;
 }
@@ -90,26 +107,27 @@ basicauthentication();
 
 installfiles();
 
+backupmycnf();
+
 databasesetup();
 
 updatedatabase();
 
-#updatemarc();
-
 populatedatabase();
 
-restartapache();
+restoremycnf();
 
+finalizeconfigfile();
+
+restartapache();
 
-# Installation is complete.  Rename the koha.conf.tmp file
 
-rename "$::etcdir/koha.conf.tmp", "$::etcdir/koha.conf" || warn "Couldn't rename file at $::etcdir. Must have write capability.\n";
 
 
-showmessage(getmessage('AuthenticationWarning', [$::etcdir]), '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');