Diff for /loncom/build/loncaparestoreconfigurations between versions 1.6 and 1.11

version 1.6, 2000/11/02 17:30:45 version 1.11, 2001/11/27 23:23:47
Line 2 Line 2
   
 # loncaparestoreconfigurations  # loncaparestoreconfigurations
   
 # This tool helps in updating a system.  It takes a list of  
 # .rpmsave files and restores them.  
   
 # Scott Harrison, 10/25/2000  # Scott Harrison, 10/25/2000
   # Scott Harrison, 12/14/2000
   
   # This tool helps in updating a system.  It restores backed-up
   # configuration files (.rpmsave or other backup notations).
   
   # By default, the .rpmsave suffix is used.
   # Alternatively, there can be two other invocations
   # Invocation #1:
   #   ARGV[0]=suffix
   #   ARGV[1]=.bak
   # Invocation #2:
   #   ARGV[0]=lasttimestamp
   
   # The criteria for the lasttimestamp is that the 
   # file suffix is a '.' followed by a 14-digit
   # time-stamp (YYYYMMDDhhmmss).
   # The time-stamp with the greatest value is
   # taken as the backup file.
   
   my $suffix=".rpmsave";
   my $suffixpragma="";
   if ($ARGV[0] eq 'suffix') {
       $suffix=$ARGV[1] if $ARGV[1]=~/^[\.\w]+$/;
   }
   elsif ($ARGV[0] eq 'lasttimestamp') {
       $suffixpragma="lasttimestamp";
   }
   
   
 use strict;  use strict;
   
Line 19  my @generic_conf_files=( Line 44  my @generic_conf_files=(
  "/home/httpd/lonTabs/spare.tab",   "/home/httpd/lonTabs/spare.tab",
  "/etc/krb.conf",   "/etc/krb.conf",
  "/etc/ntp.conf",   "/etc/ntp.conf",
    "/etc/httpd/conf/srm.conf",
    "/etc/httpd/conf/httpd.conf",
  );   );
   
 my @perlsetvars=("lonHostID","lonRole","lonAdmEMail","lonDefDomain","lonLoadLim","lonExpire");  my @perlsetvars=("lonHostID","lonRole","lonAdmEMail","lonDefDomain","lonLoadLim","lonExpire","lonReceipt","lonSqlAccess");
 my %pvar;  my %pvar;
 foreach (@special_conf_files) {  foreach (@special_conf_files) {
     if (/^\/etc\/httpd\/conf\/access.conf$/) {      if (/^\/etc\/httpd\/conf\/access.conf$/) {
    if ($suffixpragma eq 'lasttimestamp') {
       $suffix=getsuffix('/etc/httpd/conf/access.conf');
    }
  my $template=`/bin/cat /etc/httpd/conf/access.conf`;   my $template=`/bin/cat /etc/httpd/conf/access.conf`;
  my $rpmsave=`/bin/cat /etc/httpd/conf/access.conf.rpmsave`;   my $lpmlnew=`/bin/cat /etc/httpd/conf/access.conf$suffix`;
  `/bin/mv /etc/httpd/conf/access.conf /etc/httpd/conf/access.conf.template`;  # `/bin/mv /etc/httpd/conf/access.conf /etc/httpd/conf/access.conf.template`;
  foreach my $psv (@perlsetvars) {   foreach my $psv (@perlsetvars) {
     $rpmsave=~/\nPerlSetVar\s+$psv\s+(\S+)/;      $template=~/\nPerlSetVar\s+$psv\s+(\S+)/;
     my $pval=$1;      my $pval=$1;
     $template=~s/(\nPerlSetVar\s+$psv\s+)\S+/$1$pval/;      $lpmlnew=~s/(\nPerlSetVar\s+$psv\s+)\S+/$1$pval/;
     $pvar{$psv}=$pval;      $pvar{$psv}=$pval;
  }   }
  open OUT,">/etc/httpd/conf/access.conf";   open OUT,">/etc/httpd/conf/access.conf$suffix";
  print OUT $template;   print OUT $lpmlnew;
  close OUT;   close OUT;
     }      }
     if (/^\/etc\/smb.conf$/) {      if (/^\/etc\/smb.conf$/) {
  my $template=`/bin/cat /etc/httpd/conf/access.conf`;   if ($suffixpragma eq 'lasttimestamp') {
       $suffix=getsuffix('/etc/smb.conf');
    }
    my $template=`/bin/cat /etc/smb.conf$suffix`;
  foreach my $psv (@perlsetvars) {   foreach my $psv (@perlsetvars) {
     $template=~s/\{\{\{\{\[(.*?)\]\}\}\}\}/$pvar{$1}/ge;      $template=~s/\{\{\{\{\[(.*?)\]\}\}\}\}/$pvar{$1}/ge;
  }   }
  open OUT,">/etc/smb.conf";   open OUT,">/etc/smb.conf$suffix";
  print OUT $template;   print OUT $template;
  close OUT;   close OUT;
     }      }
 }  }
   
   exit; # Just because this is only about restoring configuration to
         # new files
   
 foreach (@generic_conf_files) {  foreach (@generic_conf_files) {
     if (-e "$_.rpmsave") {      my $file=$_;
  `/bin/mv $_ $_.template`;      if ($suffixpragma eq 'lasttimestamp') {
  `/bin/mv $_.rpmsave $_`;   $suffix=getsuffix($file);
     }      }
       if (-e "$file$suffix") {
    `/bin/mv $file $_.template`;
    `/bin/cp $file$suffix $file`;
       }
   }
   
   sub getsuffix {
       my ($file)=@_;
       print "$file\n";
       my $dir=$file; $dir=~s/([^\/]+)$//;
       my $filename=$1;
       opendir(DIR,$dir);
       my @a=grep {/$filename\.\d{14}/} readdir DIR;
       closedir DIR;
       map {s/$filename\.//;} @a;
       my @b=sort {$a<=>$b} @a;
       my $suffix='.'.$b[$#b];
       return $suffix;
 }  }

Removed from v.1.6  
changed lines
  Added in v.1.11


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>