Diff for /loncom/publisher/lonpublisher.pm between versions 1.12 and 1.21

version 1.12, 2000/12/04 12:27:58 version 1.21, 2001/03/29 21:45:06
Line 5 Line 5
 #  #
 # 05/29/00,05/30,10/11 Gerd Kortemeyer)  # 05/29/00,05/30,10/11 Gerd Kortemeyer)
 #  #
 # 11/28,11/29,11/30,12/01,12/02,12/04 Gerd Kortemeyer  # 11/28,11/29,11/30,12/01,12/02,12/04,12/23 Gerd Kortemeyer
   # 03/23 Guy Albertelli
   # 03/24,03/29 Gerd Kortemeyer
   
 package Apache::lonpublisher;  package Apache::lonpublisher;
   
 use strict;  use strict;
 use Apache::File;  use Apache::File;
   use File::Copy;
 use Apache::Constants qw(:common :http :methods);  use Apache::Constants qw(:common :http :methods);
 use HTML::TokeParser;  use HTML::TokeParser;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::structuretags;  use Apache::lonhomework;
 use Apache::inputtags;  
 use Apache::response;  
   
 my %addid;  my %addid;
 my %nokey;  my %nokey;
Line 127  sub publish { Line 128  sub publish {
   
 # ----------------------------------------------------------------- Backup Copy  # ----------------------------------------------------------------- Backup Copy
  my $copyfile=$source.'.save';   my $copyfile=$source.'.save';
         {          if (copy($source,$copyfile)) {
     my $org=Apache::File->new($source);  
             my $cop=Apache::File->new('>'.$copyfile);  
             while (my $line=<$org>) { print $cop $line; }  
         }  
         if (-e $copyfile) {  
     print $logfile "Copied original file to ".$copyfile."\n";      print $logfile "Copied original file to ".$copyfile."\n";
         } else {          } else {
     print $logfile "Unable to write backup ".$copyfile."\n";      print $logfile "Unable to write backup ".$copyfile.':'.$!."\n";
             return "<font color=red>Failed to write backup copy, FAIL</font>";            return "<font color=red>Failed to write backup copy, $!,FAIL</font>";
         }          }
 # ------------------------------------------------------------- IDs and indices  # ------------------------------------------------------------- IDs and indices
   
Line 511  if (-e $target) { Line 507  if (-e $target) {
   
     my $copyfile=$srcd.'/'.$srcf.'.'.$maxversion.'.'.$srct;      my $copyfile=$srcd.'/'.$srcf.'.'.$maxversion.'.'.$srct;
   
         {          if (copy($target,$copyfile)) {
     my $org=Apache::File->new($target);  
             my $cop;  
             unless ($cop=Apache::File->new('>'.$copyfile)) {  
                 print $logfile "Unable to open for write ".$copyfile."\n";  
                 return "<font color=red>Failed to open '.$copyfile.  
                        ', FAIL</font>";  
             }  
             while (my $line=<$org>) { print $cop $line; }  
         }  
         if (-e $copyfile) {  
     print $logfile "Copied old target to ".$copyfile."\n";      print $logfile "Copied old target to ".$copyfile."\n";
             $scrout.='<p>Copied old target file';              $scrout.='<p>Copied old target file';
         } else {          } else {
     print $logfile "Unable to write ".$copyfile."\n";      print $logfile "Unable to write ".$copyfile.':'.$!."\n";
             return "<font color=red>Failed to copy old target, FAIL</font>";             return "<font color=red>Failed to copy old target, $!, FAIL</font>";
         }          }
   
 # --------------------------------------------------------------- Copy Metadata  # --------------------------------------------------------------- Copy Metadata
   
  $copyfile=$copyfile.'.meta';   $copyfile=$copyfile.'.meta';
         {  
     my $org=Apache::File->new($target.'.meta');          if (copy($target.'.meta',$copyfile)) {
             my $cop=Apache::File->new('>'.$copyfile);      print $logfile "Copied old target metadata to ".$copyfile."\n";
             while (my $line=<$org>) { print $cop $line; }  
         }  
         if (-e $copyfile) {  
     print $logfile "Copied old target  metadata to ".$copyfile."\n";  
             $scrout.='<p>Copied old metadata';              $scrout.='<p>Copied old metadata';
         } else {          } else {
     print $logfile "Unable to write metadata ".$copyfile."\n";      print $logfile "Unable to write metadata ".$copyfile.':'.$!."\n";
             return               if (-e $target.'.meta') {
               "<font color=red>Failed to write old metadata copy, FAIL</font>";                 return 
          "<font color=red>Failed to write old metadata copy, $!, FAIL</font>";
       }
         }          }
   
   
Line 568  if (-e $target) { Line 552  if (-e $target) {
                }                 }
            }             }
   
         {          if (copy($source,$copyfile)) {
     my $org=Apache::File->new($source);  
             my $cop;  
             unless ($cop=Apache::File->new('>'.$copyfile)) {  
                 print $logfile "Unable to open for write ".$copyfile."\n";  
                 return "<font color=red>Failed to open '.$copyfile.  
                        ', FAIL</font>";  
             }  
             while (my $line=<$org>) { print $cop $line; }  
         }  
         if (-e $copyfile) {  
     print $logfile "Copied original source to ".$copyfile."\n";      print $logfile "Copied original source to ".$copyfile."\n";
             $scrout.='<p>Copied source file';              $scrout.='<p>Copied source file';
         } else {          } else {
     print $logfile "Unable to write ".$copyfile."\n";      print $logfile "Unable to write ".$copyfile.':'.$!."\n";
             return "<font color=red>Failed to copy source, FAIL</font>";              return "<font color=red>Failed to copy source, $!, FAIL</font>";
         }          }
   
 # --------------------------------------------------------------- Copy Metadata  # --------------------------------------------------------------- Copy Metadata
   
  my $copyfile=$target.'.meta';          $copyfile=$copyfile.'.meta';
         {  
     my $org=Apache::File->new($source.'.meta');          if (copy($source.'.meta',$copyfile)) {
             my $cop=Apache::File->new('>'.$copyfile);  
             while (my $line=<$org>) { print $cop $line; }  
         }  
         if (-e $copyfile) {  
     print $logfile "Copied original metadata to ".$copyfile."\n";      print $logfile "Copied original metadata to ".$copyfile."\n";
             $scrout.='<p>Copied metadata';              $scrout.='<p>Copied metadata';
         } else {          } else {
     print $logfile "Unable to write metadata ".$copyfile."\n";      print $logfile "Unable to write metadata ".$copyfile.':'.$!."\n";
             return               return 
                  "<font color=red>Failed to write metadata copy, FAIL</font>";            "<font color=red>Failed to write metadata copy, $!, FAIL</font>";
         }          }
   
 # --------------------------------------------------- Send update notifications  # --------------------------------------------------- Send update notifications
Line 628  if (-e $target) { Line 598  if (-e $target) {
   
 }  }
   
   # ---------------------------------------- Send update notifications, meta only
   
   {
   
       my $filename;
    
       $target=~/(.*)\/([^\/]+)$/;
       my $srcf=$2.'.meta';
       opendir(DIR,$1);
       while ($filename=readdir(DIR)) {
          if ($filename=~/$srcf\.(\w+)$/) {
      my $subhost=$1;
              if ($subhost ne 'meta') {
          $scrout.=
                   '<p>Notifying host for metadata only '.$subhost.':';
                  print $logfile 
                   "\nNotifying host for metadata only '.$subhost.':'";
                  my $reply=&Apache::lonnet::critical(
                                   'update:'.$target.'.meta',$subhost);
                  $scrout.=$reply;
                  print $logfile $reply;              
              }
          }
       }
       closedir(DIR);
   
   }
   
 # ------------------------------------------------ Provide link to new resource  # ------------------------------------------------ Provide link to new resource
   
     my $thisdistarget=$target;      my $thisdistarget=$target;
Line 741  unless ($ENV{'form.phase'} eq 'two') { Line 739  unless ($ENV{'form.phase'} eq 'two') {
   $r->send_http_header;    $r->send_http_header;
   
   $r->print('<html><head><title>LON-CAPA Publishing</title></head>');    $r->print('<html><head><title>LON-CAPA Publishing</title></head>');
   $r->print('<body bgcolor="#FFFFFF">');    $r->print(
      '<body bgcolor="#FFFFFF"><img align=right src=/adm/lonIcons/lonlogos.gif>');
   my $thisfn=$fn;    my $thisfn=$fn;
         
 # ------------------------------------------------------------- Individual file  # ------------------------------------------------------------- Individual file

Removed from v.1.12  
changed lines
  Added in v.1.21


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