Diff for /loncom/build/Attic/CHECKRPMS.default between versions 1.7 and 1.13

version 1.7, 2002/09/09 15:04:48 version 1.13, 2002/12/18 14:37:45
Line 19  other modes can be specified as shown in Line 19  other modes can be specified as shown in
   
 =over 4  =over 4
   
   =item DEFAULT
   
   When left blank, the script runs in interactive mode.  First, a proposed
   list of RPMs is presented to the user.  Then, the user is asked if he or
   she wants to download the RPMs to /tmp/loncapa_rpm_updates/.
   
 =back  =item view
   
 =head1 DESCRIPTION  A proposed list of RPMs to update is presented to the user.
   
 This file automates the usage of Martin Siegert's "check-rpms"  =item download
 script.  It runs through a list of possible mirror sites  
 until it finds one with a reasonably good FTP connection.  
   
 =head2 Future directions  A proposed set of RPMs to update are downloaded into /tmp/loncapa_rpm_updates/.
   Note that prior information inside /tmp/loncapa_rpm_updates/ is removed.
   
 Eventually, this script may have a simple argument format  =item redownload
 that allows the user to VIEW, DOWNLOAD, or AUTOUPDATE their  
 computer.  Or, this script may evolve into an interactive  
 series of steps:  For example, there may be questions like this:  
   
 =over 4  A proposed set of RPMs to update are downloaded into /tmp/loncapa_rpm_updates/.
   Note that prior information inside /tmp/loncapa_rpm_updates/ is not removed.
   (This helps support continual attempts from dialup connections.)
   
 =item *  =item html
   
 Do you want to (D)ownload or (A)utoupdate the RPMs  Similar to view mode. XHTML-formatted output is delivered; presumably
 in the list above?  to a web client.  html mode is automatically chosen if $ENV{'QUERY_STRING'} is
   defined.
   
 =item *  =back
   
 Specify a download location for the RPMs  =head1 DESCRIPTION
 (default=/tmp/update_my_rpms/)?  
   
 =back  This file automates the usage of Martin Siegert's "check-rpms"
   script.  It runs through a list of possible mirror sites
   until it finds one with a reasonably good FTP connection.
   
 Note that there are no current plans to automate a software upgrade of the  For instructions on usage, see L<SYNOPSIS>.
 kernel.  This step should be performed by a qualified system administrator.  
   
 =head1 AUTHOR  =head1 AUTHOR
   
Line 59  Scott Harrison, sharrison@users.sourcefo Line 62  Scott Harrison, sharrison@users.sourcefo
   
 =cut  =cut
   
   # ' stupid emacs
 # ================================================== READ IN COMMAND ARGUMENTS.  # ================================================== READ IN COMMAND ARGUMENTS.
   
 # ---------------------------------------------------- Process download option.  # ---------------------------------------------------- Process download option.
Line 69  if ($argument eq '--download' or $argume Line 73  if ($argument eq '--download' or $argume
   {    {
     if ($< != 0) # Download mode requires 'root'.      if ($< != 0) # Download mode requires 'root'.
       {        {
         print($out          print(
       '**** ERROR **** Download mode needs to be run as root'."\n");        '**** ERROR **** Download mode needs to be run as root'."\n");
  exit(0); # Exit.   exit(0); # Exit.
       }        }
Line 100  my $command_name=$0; Line 104  my $command_name=$0;
 # ---------------- The FTP servers (and their directory paths) to check against  # ---------------- The FTP servers (and their directory paths) to check against
 my @serverpaths_to_try =   my @serverpaths_to_try = 
   (    (
     'distro.ibiblio.org/pub/linux/distributions/redhat/updates/',      'ftpmirror:loncapa@install.lon-capa.org/pub/redhat/linux/updates/',
     'mirror.pa.msu.edu/linux/redhat/linux/updates/',      'mirror.pa.msu.edu/linux/redhat/linux/updates/',
       'distro.ibiblio.org/pub/linux/distributions/redhat/updates/',
     'limestone.uoregon.edu/redhat/updates/',      'limestone.uoregon.edu/redhat/updates/',
     'rufus.w3.org/linux/redhat/linux/updates/',      'rufus.w3.org/linux/redhat/linux/updates/',
     'opnsrc.support.compaq.com/linux/redhat/updates.redhat.com/',  
   );    );
   
 # -------------------------------------------- Use check-rpms command this way.  # -------------------------------------------- Use check-rpms command this way.
Line 188  SERVERLOOP: foreach my $serverpath (@ser Line 192  SERVERLOOP: foreach my $serverpath (@ser
   {    {
     $serverpath=~/^(.*?)\//; # Pattern match the ip name.      $serverpath=~/^(.*?)\//; # Pattern match the ip name.
     $FTPSERVER=$1; # Set to the ip name.      $FTPSERVER=$1; # Set to the ip name.
     print($out "Trying $FTPSERVER...\n"); # Notify of attempts with ip name.      $FTPSERVER_noauth=$FTPSERVER;
     `ping -c 1 $FTPSERVER 2>/dev/null`; # Ping ftp server (are you out there?).      $FTPSERVER_noauth=~s/^.*?\@//;
       print($out
     "Trying $FTPSERVER_noauth...\n"); # Notify of attempts with ip name.
       `ping -c 1 -w 10 $FTPSERVER_noauth 2>/dev/null`;#Ping ftp server (u there?)
     if ($?==0) # If the ftp server can be pinged.      if ($?==0) # If the ftp server can be pinged.
       {        {
  print($out "$FTPSERVER found...\n"); # Tell user ftp server is found.   print($out "$FTPSERVER found...\n"); # Tell user ftp server is found.
Line 315  sub clean_exit Line 322  sub clean_exit
     if ($mode eq 'cronmail') # If cronmail mode, then mail LON-CAPA sys admin.      if ($mode eq 'cronmail') # If cronmail mode, then mail LON-CAPA sys admin.
       {        {
         close(FOUT);          close(FOUT);
   
  # Read in configuration to get e-mail addresses.   # Read in configuration to get e-mail addresses.
  my $perlvarref = read_conf('loncapa.conf');   my $perlvarref = read_conf('loncapa.conf');
  my %perlvar = %{$perlvarref};   my %perlvar = %{$perlvarref};
Line 324  sub clean_exit Line 332  sub clean_exit
   
  # Set metadata for the e-mail.   # Set metadata for the e-mail.
         my $emailto = "$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";          my $emailto = "$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
 # my $emailto = "sharrison\@users.sourceforge.net";  
  my $subj="LON: $perlvar{'lonHostID'}, RPMS to upgrade";   my $subj=$perlvar{'lonHostID'}.', RPMS to upgrade';
  system(  
        'metasend -b -t '.$emailto.' -s '.   # Make the e-mail's subject header to describe whether up-to-date.
        "'$subj' -f /tmp/CHECKRPMS.$$ -m text/plain");   if ($reallygoodoutput)
     {
       $subj = 'happy_lon: '.$subj; # Machine is up-to-date.
     }
    else
     {
       $subj = 'ALERT_lon: '.$subj; # There are out-of-date RPMs.
     }
   
    # Send the e-mail.
           if (!$reallygoodoutput)
     {
       system(
      'metasend -b -t '.$emailto.' -s '.
      "'$subj' -f /tmp/CHECKRPMS.$$ -m text/plain");
     }
       }        }
   
     print($out <<END) if $mode eq 'html'; # If html mode, print ending tags.      print($out <<END) if $mode eq 'html'; # If html mode, print ending tags.

Removed from v.1.7  
changed lines
  Added in v.1.13


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