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

version 1.4, 2000/11/02 17:11:05 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;
   
 my @special_conf_files=(  my @special_conf_files=(
  "/etc/httpd/conf/access.conf"   "/etc/httpd/conf/access.conf",
    "/etc/smb.conf"
  );   );
   
 my @generic_conf_files=(  my @generic_conf_files=(
Line 18  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/smb.conf"   "/etc/httpd/conf/srm.conf",
    "/etc/httpd/conf/httpd.conf",
  );   );
   
   my @perlsetvars=("lonHostID","lonRole","lonAdmEMail","lonDefDomain","lonLoadLim","lonExpire","lonReceipt","lonSqlAccess");
   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`;
  my @perlsetvars=("lonHostID","lonRole","lonAdmEMail","lonDefDomain","lonLoadLim","lonExpire");  
  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;
  }   }
  open OUT,">/etc/httpd/conf/access.conf";   open OUT,">/etc/httpd/conf/access.conf$suffix";
    print OUT $lpmlnew;
    close OUT;
       }
       if (/^\/etc\/smb.conf$/) {
    if ($suffixpragma eq 'lasttimestamp') {
       $suffix=getsuffix('/etc/smb.conf');
    }
    my $template=`/bin/cat /etc/smb.conf$suffix`;
    foreach my $psv (@perlsetvars) {
       $template=~s/\{\{\{\{\[(.*?)\]\}\}\}\}/$pvar{$1}/ge;
    }
    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.4  
changed lines
  Added in v.1.11


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