Diff for /loncom/build/check-rpms between versions 1.4 and 1.6

version 1.4, 2002/08/01 04:57:18 version 1.6, 2002/11/04 02:52:39
Line 90  use Getopt::Long; Line 90  use Getopt::Long;
   
 my $retval = &GetOptions("verbose|v","lm|list-missing","lq|list-questionable",  my $retval = &GetOptions("verbose|v","lm|list-missing","lq|list-questionable",
                          "dir|d=s","ftp:s","noftp","download|dl","recheck|r",                           "dir|d=s","ftp:s","noftp","download|dl","recheck|r",
                          "nk|no-kernel","update","c=s");                           "nk|no-kernel","update","c=s","rpmuser=s");
   
 =pod  =pod
   
Line 203  example configuration file is given belo Line 203  example configuration file is given belo
 is omitted, I<check-rpms> will use the default configuration  is omitted, I<check-rpms> will use the default configuration
 file I</usr/local/etc/check-rpms.conf>, if it exists.  file I</usr/local/etc/check-rpms.conf>, if it exists.
   
   =item B<--rpmuser> I<user name>
   
   Specifying $RPMUSER on the command line.
   
 =back  =back
   
 =head1 EXAMPLES  =head1 EXAMPLES
Line 263  $DEFCONF = "/usr/local/etc/check-rpms.co Line 267  $DEFCONF = "/usr/local/etc/check-rpms.co
 $DEFRPMDIR = "/mnt/redhat/RedHat/RPMS";  $DEFRPMDIR = "/mnt/redhat/RedHat/RPMS";
 $DEFFTPSERVER = "updates.redhat.com";  $DEFFTPSERVER = "updates.redhat.com";
 $DEFFTPUPDATES = "$RHversion/en/os";  $DEFFTPUPDATES = "$RHversion/en/os";
 $DEFRPMUSER = "harris41";  $DEFRPMUSER = "nobody";
   
 $RPMDIR=$DEFRPMDIR;  $RPMDIR=$DEFRPMDIR;
   
Line 297  Example configuration file: Line 301  Example configuration file:
   
  # $RPMUSER is the user name that check-rpms switches to for most of   # $RPMUSER is the user name that check-rpms switches to for most of
  # the script when run as root   # the script when run as root
  $RPMUSER = "harris41";   $RPMUSER = "adminjoe";
   
  # $FTPSERVER and $FTPUPDATES are the hostname of a ftp server and the   # $FTPSERVER and $FTPUPDATES are the hostname of a ftp server and the
  # directory where RPM updates can be found without the <arch> directory.   # directory where RPM updates can be found without the <arch> directory.
Line 318  if ( -f $CONF) { Line 322  if ( -f $CONF) {
    $FTPUPDATES = $DEFFTPUPDATES;     $FTPUPDATES = $DEFFTPUPDATES;
 }  }
   
   if ($opt_rpmuser) {
      $DEFRPMUSER = $opt_rpmuser;
   }
   
 # check whether we are running as root  # check whether we are running as root
 if ($< == 0){  if ($< == 0){
    if (! $RPMUSER) {     if (! $RPMUSER) {
Line 387  if (defined $opt_ftp || $FTP) { Line 395  if (defined $opt_ftp || $FTP) {
    die "Either $RPMDIR does not exist or it does not contain any packages.\n";     die "Either $RPMDIR does not exist or it does not contain any packages.\n";
 }  }
   
   my $FTPSERVER_auth = $FTPSERVER;
   $FTPSERVER_auth =~ s/^(\w+)\:(\w+)\@/-u $1 -p $2 /;
   
 if ($recheck) {  if ($recheck) {
    $questionable=1;     $questionable=1;
 }  }
Line 556  for (@local_rpm_list) { Line 567  for (@local_rpm_list) {
     }      }
 }  }
   
   
 if ($recheck && @q_updates) {  if ($recheck && @q_updates) {
    if ($ftp) {         if ($ftp) {    
       for (@q_updates) {        for (@q_updates) {
Line 565  if ($recheck && @q_updates) { Line 577  if ($recheck && @q_updates) {
       if ($verbose) {        if ($verbose) {
          print "Getting questionable packages form $FTPSERVER ...\n";           print "Getting questionable packages form $FTPSERVER ...\n";
       }        }
       my $status = system("$FTPGET $FTPSERVER $RPMDIR @ftp_files");        my $status = system("$FTPGET $FTPSERVER_auth $RPMDIR @ftp_files");
       if ($status) {        if ($status) {
          if ($< == 0) {           if ($< == 0) {
             # if we are running as root exit to avoid symlink attacks, etc.              # if we are running as root exit to avoid symlink attacks, etc.
   print("DEBUG DEBUG $FTPGET $FTPSERVER_auth $RPMDIR @ftp_files");
             die "$FTPGET failed with status ", $status/256, ".\n";              die "$FTPGET failed with status ", $status/256, ".\n";
  } else {   } else {
             print STDERR "warning: $FTPGET failed with status ", $status/256, ".\n";              print STDERR "warning: $FTPGET failed with status ", $status/256, ".\n";
Line 610  if (@updates) { Line 623  if (@updates) {
        if ($verbose) {         if ($verbose) {
           print "starting downloads ... \n";            print "starting downloads ... \n";
        }         }
        my $status = system("$FTPGET $FTPSERVER $RPMDIR @ftp_files");         my $status = system("$FTPGET $FTPSERVER_auth $RPMDIR @ftp_files");
        if ($status) {         if ($status) {
           if ($< == 0) {            if ($< == 0) {
              # if we are running as root exit to avoid symlink attacks, etc.               # if we are running as root exit to avoid symlink attacks, etc.
Line 647  if (@q_updates && $questionable) { Line 660  if (@q_updates && $questionable) {
        }         }
        if ($verbose) {         if ($verbose) {
           print "starting downloads ... \n";            print "starting downloads ... \n";
           system("$FTPGET $FTPSERVER $$RPMDIR @ftp_files");            system("$FTPGET $FTPSERVER_auth $$RPMDIR @ftp_files");
           print "... done.\n";            print "... done.\n";
        } else {         } else {
           system("$FTPGET $FTPSERVER $$RPMDIR @ftp_files");            system("$FTPGET $FTPSERVER_auth $$RPMDIR @ftp_files");
        }         }
     }                 }           
 }  }
Line 681  sub ftp_download { Line 694  sub ftp_download {
        my ($arch) = m/[^ ]*-[^-]+-[^-]*\.(\w+)\.rpm$/;         my ($arch) = m/[^ ]*-[^-]+-[^-]*\.(\w+)\.rpm$/;
        push(@ftp_packages,"$FTPDIR/$arch/$_");         push(@ftp_packages,"$FTPDIR/$arch/$_");
     }      }
     my $status = system("$FTPGET $FTPSERVER $downloaddir @ftp_packages");      my $status = system("$FTPGET $FTPSERVER_auth $downloaddir @ftp_packages");
     return $status;      return $status;
 }  }
   

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


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