Diff for /doc/loncapafiles/updatequery.piml between versions 1.63 and 1.82

version 1.63, 2009/12/29 07:04:38 version 1.82, 2016/07/29 16:44:36
Line 33  http://www.lon-capa.org/ Line 33  http://www.lon-capa.org/
 <target dist='default'>/</target>  <target dist='default'>/</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
 $|=1;  $|=1;
     use strict;
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
   
Line 53  END Line 54  END
 <file>  <file>
 <target dist='default'>loncom/hosts.tab</target>  <target dist='default'>loncom/hosts.tab</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
   my $lonCluster;
 unless (-l "<TARGET />") {  unless (-l "<TARGET />") {
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
Line 81  END Line 83  END
   
 # get input  # get input
 # if valid then process, otherwise loop  # if valid then process, otherwise loop
 $flag=0;  my $flag=0;
 while (!$flag) {  while (!$flag) {
   print "ENTER 1, 2, 3, or 4:\n";    print "ENTER 1, 2, 3, or 4:\n";
   my $choice=&lt;&gt;;    my $choice=&lt;&gt;;
Line 125  my $domainDescription; Line 127  my $domainDescription;
 my $domainTabExtras;  my $domainTabExtras;
 my $primaryLibServer;  my $primaryLibServer;
 my $protocol;  my $protocol;
   my $intdom;
 my @libservers = ();  my @libservers = ();
 unless (-e "<TARGET />") {  unless (-e "<TARGET />") {
   print(&lt;&lt;END);    print(&lt;&lt;END);
Line 134  If you have questions, please visit http Line 137  If you have questions, please visit http
 or contact helpdesk\@lon-capa.org.  or contact helpdesk\@lon-capa.org.
   
 ===============================================================================  ===============================================================================
 The following 4 values are needed to configure LON-CAPA:  The following 7 values are needed to configure LON-CAPA:
 * Machine Role  * Machine Role
 * LON-CAPA Domain Name  * LON-CAPA Domain Name
 * LON-CAPA Machine ID Name, and  * LON-CAPA Machine ID Name
 * Server Administration E-mail Address.  * Server Administration E-mail Address
   * LON-CAPA Domain's Primary Library Server Machine ID
   * Web Server Protocol
   * Internet Domain Name of Your Institution
 ===============================================================================  ===============================================================================
   
 In addition, a Support E-mail Address can also be included. If  In addition, a Support E-mail Address can also be included. If
Line 216  if ($hostname=~/([^\.]*)\.([^\.]*)$/) { Line 222  if ($hostname=~/([^\.]*)\.([^\.]*)$/) {
  have to actually work together with your colleagues. You can still run   have to actually work together with your colleagues. You can still run
  multiple library servers within the same domain.   multiple library servers within the same domain.
  If this domain is eventually going to be part of the main production   If this domain is eventually going to be part of the main production
  cluster, you MUST contact the LON-CAPA group at MSU (loncapa@loncapa.org)   cluster, you MUST contact the LON-CAPA group at MSU (loncapa\@loncapa.org)
  to have a domain name assigned, and then use it exactly as given. This is   to have a domain name assigned, and then use it exactly as given. This is
  also true for test installs that might eventually turn into production setups.   also true for test installs that might eventually turn into production setups.
  Stop now if you didn't do so.]   Stop now if you didn't do so.]
Line 367  if ($lonRole eq 'library') { Line 373  if ($lonRole eq 'library') {
         $primaryLibServer = $libservers[0];          $primaryLibServer = $libservers[0];
     }      }
 }  }
   
   $flag=0;
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 **** Domain's Primary Library Server ID ****  **** Domain's Primary Library Server ID ****
Line 475  END Line 483  END
   }    }
 }  }
   
   # get protocol
   # accept if valid, if not valid, tell user and repeat
   $flag=0;
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
   
 ****  Web Server Protocol ****  ****  Web Server Protocol ****
 If you plan to run the Apache server with SSL enabled,   If you plan to run the Apache server with SSL enabled, 
 the protocol should be: https; otherwise it should be http.  the protocol should be: https; otherwise it should be http.
 ENTER WEB SERVER PROTOCOL:  ENTER WEB SERVER PROTOCOL [http]:
 END  END
   
   my $choice=&lt;&gt;;    my $choice=&lt;&gt;;
   chomp($choice);    chomp($choice);
   if ($choice!~/^https?$/) {    if ($choice =~ /^https?$/) {
     open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');      open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
     print(OUT 'protocol'."\t".$choice."\n");      print(OUT 'protocol'."\t".$choice."\n");
     close(OUT);      close(OUT);
     $protocol=$choice;      $protocol=$choice;
     $flag=1;      $flag=1;
     } elsif ($choice eq '') {
       open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
       print(OUT 'protocol'."\t".'http'."\n");
       close(OUT);
       $protocol = 'http';
       $flag = 1;
     } else {
       print "Invalid input (only http or https allowed).\n";
     }
   }
   
   # get internet domain
   # accept if valid, if not valid, tell user and repeat
   $flag=0;
   while (!$flag) {
     print(&lt;&lt;END);
   
   ****  Internet Domain Name of Your Institution ****
   
   The internet domain name used for servers at your institution 
   should be provided.  This will be similar to: ustate.edu or
   topcollege.ac.uk or my.hostingcompany.com, i.e., the part of
   a server hostname which indicates to which organization the 
   server belongs.
   
   ENTER INTERNET DOMAIN NAME:
   END
   
     my $choice=&lt;&gt;;
     chomp($choice);
     if ($choice =~/[^.]+\.[^.]+/) {
       open(OUT,'&gt;&gt;/tmp/loncapa_updatequery.out');
       print(OUT 'internet domain'."\t".$choice."\n");
       close(OUT);
       $intdom=$choice;
       $flag=1;
   }    }
   else {    else {
     print "Invalid input (only http or https allowed).\n";      print "Invalid input (must be at least two levels separated by .  - e.g., ustate.edu).\n";
   }    }
 }  }
   
   
 # update loncapa.conf  # update loncapa.conf
 my $confdir = '/etc/httpd/conf/';  my $confdir = '/etc/httpd/conf/';
 if ('<DIST />' eq 'sles10' || '<DIST />' eq 'suse10.1' || '<DIST />' eq 'suse10.2' || '<DIST />' eq 'suse10.3' || '<DIST />' eq 'suse11.1' || '<DIST />' eq 'suse11.2' || '<DIST />' eq 'debian5' || '<DIST />' eq 'ubuntu6' || '<DIST />' eq 'ubuntu8') {  if ('<DIST />' eq 'sles10' || '<DIST />' eq 'sles11' || '<DIST />' eq 'sles12' || '<DIST />' eq 'suse10.1' || '<DIST />' eq 'suse10.2' || '<DIST />' eq 'suse10.3' || '<DIST />' eq 'suse11.1' || '<DIST />' eq 'suse11.2' || '<DIST />' eq 'suse11.3' || '<DIST />' eq 'suse11.4' || '<DIST />' eq 'suse12.1' || '<DIST />' eq 'suse12.2' || '<DIST />' eq 'suse12.3' || '<DIST />' eq 'suse13.1' || '<DIST />' eq 'suse13.2' || '<DIST />' eq 'debian5' || '<DIST />' eq 'debian6' || '<DIST />' eq 'ubuntu6' || '<DIST />' eq 'ubuntu8' || '<DIST />' eq 'ubuntu10' || '<DIST />' eq 'ubuntu12' || '<DIST />' eq 'ubuntu14' || '<DIST />' eq 'ubuntu16') {
      $confdir = '/etc/apache2/';       $confdir = '/etc/apache2/';
 }     }   
 my $filename='loncapa.conf';  my $filename='loncapa.conf';
Line 533  my %perlvar; Line 581  my %perlvar;
     unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {      unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {
        my $lonReceipt='';         my $lonReceipt='';
        srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);         srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);
        my @alnum=(0..9,a..z);         my @alnum=(0..9,"a".."z");
        foreach my $i (1..20) {         foreach my $i (1..20) {
  $lonReceipt.=$alnum[int(rand(36))];   $lonReceipt.=$alnum[int(rand(36))];
        }         }
Line 557  END Line 605  END
 </file>  </file>
 <file>  <file>
 <target dist='default'>/etc/httpd/conf/</target>  <target dist='default'>/etc/httpd/conf/</target>
 <target dist='sles10 suse10.1 suse10.2 suse10.3 suse11.1 suse11.2 debian5 ubuntu6 ubuntu8'>/etc/apache2/</target>  <target dist='sles10 sles11 sles12 suse10.1 suse10.2 suse10.3 suse11.1 suse11.2 suse11.3 suse11.4 suse12.1 suse12.2 suse12.3 suse13.1 suse13.2 debian5 debian6 ubuntu6 ubuntu8 ubuntu10 ubuntu12 ubuntu14 ubuntu16'>/etc/apache2/</target>
 <perlscript mode='fg'>  <perlscript mode='fg'>
 sub securesetting {  sub securesetting {
     my (%perlvar)=@_;      my (%perlvar)=@_;
Line 610  my ($securestatus,$securenum); Line 658  my ($securestatus,$securenum);
     unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {      unless ($perlvar{'lonReceipt'} and $perlvar{'lonReceipt'}!~/\{\[\[\[\[/) {
        my $lonReceipt='';         my $lonReceipt='';
        srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);         srand(time ^ $$ ^ unpack "%L*", `ps axww | gzip`);
        my @alnum=(0..9,a..z);         my @alnum=(0..9,"a".."z");
        foreach my $i (1..20) {         foreach my $i (1..20) {
  $lonReceipt.=$alnum[int(rand(36))];   $lonReceipt.=$alnum[int(rand(36))];
        }         }
Line 664  my %perlvarstatic; Line 712  my %perlvarstatic;
         foreach my $file (@hosts_files) {          foreach my $file (@hosts_files) {
             open(IN,'&lt;'.$file);              open(IN,'&lt;'.$file);
             while(my $line = &lt;IN&gt;) {              while(my $line = &lt;IN&gt;) {
                 if ($line =~ /^\Q$perlvar{'lonHostID'}\E:\Q$perlvar{'lonDefDomain'}\E\:(?:access|library)\:(https?)/) {                  if ($line =~ /^\Q$perlvar{'lonHostID'}\E:\Q$perlvar{'lonDefDomain'}\E\:(?:access|library)\:[^:]+\:(https?)/) {
                     $protocol = $1;                      $protocol = $1;
                       chomp($protocol);
                     last;                      last;
                 }                  }
             }              }
Line 676  my %perlvarstatic; Line 725  my %perlvarstatic;
         $protocol = 'http';          $protocol = 'http';
     }      }
   
     while(!$primaryLibServ && (@hosts_file || @domain_files)) {      if (!$intdom) {
           foreach my $file (@hosts_files) {
               open(IN,'&lt;'.$file);
               while(my $line = &lt;IN&gt;) {
                   if ($line =~ /^\Q$perlvar{'lonHostID'}\E:\Q$perlvar{'lonDefDomain'}\E\:(?:access|library)\:[^:]+\:https?\:([^:]+)/) {
                       $intdom = $1;
                       chomp($intdom);
                       last;
                   }
               }
           }
       }
   
       while(!$primaryLibServer && (@hosts_files || @domain_files)) {
  my $file = shift(@domain_files);   my $file = shift(@domain_files);
         open(IN,'&lt;'.$file);          open(IN,'&lt;'.$file);
         while(my $line = &lt;IN&gt;) {          while(my $line = &lt;IN&gt;) {
Line 703  my %perlvarstatic; Line 765  my %perlvarstatic;
     }      }
         
 # implement editing logic below, interactively  # implement editing logic below, interactively
 # update loncapa.conf until 13 is entered  # update loncapa.conf until 14 is entered
   
 $flag=0;  my $flag=0;
   
 while (!$flag) {  while (!$flag) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
Line 719  This is now the current configuration of Line 781  This is now the current configuration of
  5) Server Administrator's E-mail Address: $perlvar{'lonAdmEMail'}   5) Server Administrator's E-mail Address: $perlvar{'lonAdmEMail'}
  6) Support E-mail Address: $perlvar{'lonSupportEMail'}   6) Support E-mail Address: $perlvar{'lonSupportEMail'}
  7) Web Server Protocol (http or https): $protocol    7) Web Server Protocol (http or https): $protocol 
  8) Role: $perlvar{'lonRole'}   8) Internet Domain Name: $intdom 
  9) Cache Expiration Time: $perlvar{'lonExpire'}   9) Role: $perlvar{'lonRole'}
 10) Server Load: $perlvar{'lonLoadLim'}  10) Cache Expiration Time: $perlvar{'lonExpire'}
 11) User Load: $perlvar{'lonUserLoadLim'}  11) Server Load: $perlvar{'lonLoadLim'}
 12) Allow only secure connections: $securestatus   12) User Load: $perlvar{'lonUserLoadLim'}
 13) Everything is correct up above  13) Allow only secure connections: $securestatus 
   14) Everything is correct up above
 END  END
   
 my @error;  my @error;
 foreach my $v ($perlvar{'lonDefDomain'},$perlvar{'lonHostID'}) {  foreach my $v ($perlvar{'lonDefDomain'},$perlvar{'lonHostID'}) {
    if (length($v)>35) { $error.="\nName $v too long"; }     if (length($v)>35) { push(@error,"Name $v too long"); }
    if (length($v)<2) { $error.="\nName $v too short"; }     if (length($v)<2) { push(@error,"Name $v too short"); }
    if ($v=~/capa/i) {     if ($v=~/capa/i) {
  if ($v!~/^oucapa\d+$/ &&    if ($v!~/^oucapa\d+$/ && 
     ($v!~/^capa\d+$/ && $perlvar{'lonDefDomain'} eq 'uwsp')) {      ($v!~/^capa\d+$/ && $perlvar{'lonDefDomain'} eq 'uwsp')) {
Line 759  unless (($protocol eq 'http') || ($proto Line 822  unless (($protocol eq 'http') || ($proto
    push(@error,"Invalid Protocol (must be http or https");     push(@error,"Invalid Protocol (must be http or https");
 }  }
   
   if (!defined($intdom)) { 
      push(@error,"No internet domain name designated. Enter something like ustate.edu"); 
   } elsif ($intdom !~ /[^.]+\.\w{2,6}$/) {
      push(@error,"Invalid Internet domain name (must be at least two levels separated by .  - e.g., ustate.edu");
   }
   
 if (!defined($primaryLibServer)) {  if (!defined($primaryLibServer)) {
    if (@libservers > 0) {     if (@libservers > 0) {
        push(@error,"No primary library server ID designated. Choose from: ".join(',',sort(@libservers)));         push(@error,"No primary library server ID designated. Choose from: ".join(',',sort(@libservers)));
Line 784  if (!defined($primaryLibServer)) { Line 853  if (!defined($primaryLibServer)) {
   
 if (@error) { print "\n*** ERRORS: \n\t".join("\n\t",@error)."\n"; }  if (@error) { print "\n*** ERRORS: \n\t".join("\n\t",@error)."\n"; }
   print(&lt;&lt;END);    print(&lt;&lt;END);
 ENTER A CHOICE OF 1-12 TO CHANGE, otherwise ENTER 13:  ENTER A CHOICE OF 1-13 TO CHANGE, otherwise ENTER 14:
 END  END
 my $choice=&lt;&gt;;  my $choice=&lt;&gt;;
 chomp($choice);  chomp($choice);
Line 866  END Line 935  END
   }    }
   elsif ($choice==8) {    elsif ($choice==8) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 8) Role: $perlvar{'lonRole'}  8) Internet Domain Name of Institution
   ENTER NEW VALUE: 
   
   END
       my $choice2=&lt;&gt;;
       chomp($choice2);
       $intdom=$choice2;
     }
     elsif ($choice==9) {
     print(&lt;&lt;END);
   9) Role: $perlvar{'lonRole'}
 ENTER NEW VALUE (this should be either 'access' or 'library'   ENTER NEW VALUE (this should be either 'access' or 'library' 
                  if in doubt select 'library'):                   if in doubt select 'library'):
 END  END
Line 874  END Line 953  END
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonRole'}=$choice2;      $perlvar{'lonRole'}=$choice2;
   }    }
   elsif ($choice==9) {    elsif ($choice==10) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 9) Cache Expiration Time: $perlvar{'lonExpire'}  10) Cache Expiration Time: $perlvar{'lonExpire'}
 ENTER NEW VALUE (in seconds, 86400 is a reasonable value):  ENTER NEW VALUE (in seconds, 86400 is a reasonable value):
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonExpire'}=$choice2;      $perlvar{'lonExpire'}=$choice2;
   }    }
   elsif ($choice==10) {    elsif ($choice==11) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 10) Server Load: $perlvar{'lonLoadLim'}  11) Server Load: $perlvar{'lonLoadLim'}
 ENTER NEW VALUE:  ENTER NEW VALUE:
 END  END
     my $choice2=&lt;&gt;;      my $choice2=&lt;&gt;;
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonLoadLim'}=$choice2;      $perlvar{'lonLoadLim'}=$choice2;
   }    }
   elsif ($choice==11) {    elsif ($choice==12) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 11) User Load: $perlvar{'lonUserLoadLim'}  12) User Load: $perlvar{'lonUserLoadLim'}
 Numer of users that can login before machine is 'overloaded'  Numer of users that can login before machine is 'overloaded'
 ENTER NEW VALUE (integer value, 0 means there is no limit):  ENTER NEW VALUE (integer value, 0 means there is no limit):
 END  END
Line 902  END Line 981  END
     chomp($choice2);      chomp($choice2);
     $perlvar{'lonUserLoadLim'}=$choice2;      $perlvar{'lonUserLoadLim'}=$choice2;
   }    }
   elsif ($choice==12) {    elsif ($choice==13) {
   print(&lt;&lt;END);    print(&lt;&lt;END);
 12) Allow only secure connections: $securestatus   13) Allow only secure connections: $securestatus 
 The Lon-CAPA communication daemons lonc and lond can be configured to  The Lon-CAPA communication daemons lonc and lond can be configured to
 allow only secure connections by default.  allow only secure connections by default.
   
Line 931  END Line 1010  END
     }      }
     ($securestatus,$securenum)=&securesetting(%perlvar);      ($securestatus,$securenum)=&securesetting(%perlvar);
   }    }
   elsif (($choice==13) && (!$error)) {    elsif (($choice==14) && (!@error)) {
     $flag=1;      $flag=1;
   }    }
   else {    else {
Line 958  END Line 1037  END
 <perlscript mode='fg'>  <perlscript mode='fg'>
 unless (-l "<TARGET />") {  unless (-l "<TARGET />") {
   my $hostname=`hostname -f`;chomp($hostname);    my $hostname=`hostname -f`;chomp($hostname);
   $date=`date -I`; chomp($date);    my $date=`date -I`; chomp($date);
   $lonHostID=$perlvar{'lonHostID'};    my $lonHostID=$perlvar{'lonHostID'};
   $lonHostID=~s/[^\w\-.]//g;    $lonHostID=~s/[^\w\-.]//g;
   $lineexistflag=0;    my $lineexistflag=0;
   $hostidexistflag=0;    my $hostidexistflag=0;
   $line2insert=&lt;&lt;END;    my $line2insert=&lt;&lt;END;
 $perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$protocol  $perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$protocol:$intdom
 END  END
   if (!$domainTabExtras) {    if (!$domainTabExtras) {
  $domainTabExtras=':::::';   $domainTabExtras=':::::';
   }    }
   $domaininsert="$perlvar{'lonDefDomain'}:$domainDescription:$domainTabExtras:$primaryLibServer\n";    my $domaininsert="$perlvar{'lonDefDomain'}:$domainDescription:$domainTabExtras:$primaryLibServer\n";
   if ($lonCluster eq 'standalone') {    if ($lonCluster eq 'standalone') {
     open(OUT,'&gt;../'.$lonCluster.'_hosts.tab') or      open(OUT,'&gt;../'.$lonCluster.'_hosts.tab') or
       die('file generation error');        die('file generation error');
Line 1018  END Line 1097  END
        close(OUT);         close(OUT);
       `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;        `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;
       # email appropriate message        # email appropriate message
       `echo "REPLACE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "REPLACE:$lonCluster:$lonHostID:$protocol:$date" installrecord\@mail.lon-capa.org`;        `echo "REPLACE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "REPLACE:$lonCluster:$lonHostID:$protocol:$intdom:$date" installrecord\@mail.lon-capa.org`;
     }      }
     elsif ($hostidexistflag and $lineexistflag) {      elsif ($hostidexistflag and $lineexistflag) {
       print &lt;&lt;END;        print &lt;&lt;END;
Line 1031  END Line 1110  END
        close(OUT);         close(OUT);
       `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;        `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;
       # email appropriate message        # email appropriate message
       `echo "STABLEUPDATE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "STABLEUPDATE:$lonCluster:$lonHostID:$protocol:$date" installrecord\@mail.lon-capa.org`;        `echo "STABLEUPDATE:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "STABLEUPDATE:$lonCluster:$lonHostID:$protocol:$intdom:$date" installrecord\@mail.lon-capa.org`;
     }      }
     elsif (!$hostidexistflag and !$lineexistflag) {      elsif (!$hostidexistflag and !$lineexistflag) {
       print &lt;&lt;END;        print &lt;&lt;END;
Line 1044  END Line 1123  END
        close(OUT);         close(OUT);
       `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;        `ln -s new_${lonCluster}_hosts.tab ../hosts.tab`;
       # email appropriate message        # email appropriate message
       `echo "INSERT:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "INSERT:$lonCluster:$lonHostID:$protocol:$date" installrecord\@mail.lon-capa.org`;        `echo "INSERT:$lonCluster:$lonHostID:$date:$line2insert" | mail -s "INSERT:$lonCluster:$lonHostID:$protocol:$intdom:$date" installrecord\@mail.lon-capa.org`;
     }      }
   }    }
   $lineexistflag=0;    $lineexistflag=0;
     my $domainexistflag=0;
   if ($flag==1) {    if ($flag==1) {
     `rm -f ../domain.tab`;      `rm -f ../domain.tab`;
     `rm -f ../dns_domain.tab`;      `rm -f ../dns_domain.tab`;
Line 1077  END Line 1157  END
        close(OUT);         close(OUT);
       `ln -s new_${lonCluster}_domain.tab ../domain.tab`;        `ln -s new_${lonCluster}_domain.tab ../domain.tab`;
       # email appropriate message        # email appropriate message
       `echo "REPLACEdom:$lonCluster:$lonHostID:$date:$domaninsert" | mail -s "REPLACEdom:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;        `echo "REPLACEdom:$lonCluster:$lonHostID:$date:$domaininsert" | mail -s "REPLACEdom:$lonCluster:$lonHostID:$date" installrecord\@mail.lon-capa.org`;
     }      }
     elsif ($domainexistflag and $lineexistflag) {      elsif ($domainexistflag and $lineexistflag) {
       `grep -v "$perlvar{'lonDefDomain'}:" ../${lonCluster}_domain.tab &gt; ../new_${lonCluster}_domain.tab`;        `grep -v "$perlvar{'lonDefDomain'}:" ../${lonCluster}_domain.tab &gt; ../new_${lonCluster}_domain.tab`;

Removed from v.1.63  
changed lines
  Added in v.1.82


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