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

version 1.4, 2000/11/02 17:11:05 version 1.10, 2001/06/01 16:00:44
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 $suffix=~/^[\.\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 $rpmsave=`/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+)/;      $rpmsave=~/\nPerlSetVar\s+$psv\s+(\S+)/;
     my $pval=$1;      my $pval=$1;
     $template=~s/(\nPerlSetVar\s+$psv\s+)\S+/$1$pval/;      $template=~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";
  print OUT $template;   print OUT $template;
  close OUT;   close OUT;
     }      }
       if (/^\/etc\/smb.conf$/) {
    if ($suffixpragma eq 'lasttimestamp') {
       $suffix=getsuffix('/etc/smb.conf');
    }
    my $template=`/bin/cat /etc/smb.conf`;
    foreach my $psv (@perlsetvars) {
       $template=~s/\{\{\{\{\[(.*?)\]\}\}\}\}/$pvar{$1}/ge;
    }
    open OUT,">/etc/smb.conf";
    print OUT $template;
    close OUT;
       }
 }  }
   
 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.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.