Diff for /loncom/build/Attic/parse.pl between versions 1.25 and 1.37

version 1.25, 2001/01/18 15:13:09 version 1.37, 2001/04/17 14:17:22
Line 2 Line 2
   
 # Scott Harrison  # Scott Harrison
 # November 2000  # November 2000
   # 12/5/2000,12/7,12/8,12/9,12/10,12/11,12/12,12/13,12/14,12/21 Scott Harrison
 # Read in loncapa tags and metagroup tags  # 1/8/2001,1/10/2001,1/13/2001,1/16/2001,1/18/2001,1/23/2001 Scott Harrison
   # 2/26/2001,2/27/2001,3/5/2001,4/10/2001,4/11,2001,4/13,2001 Scott Harrison
   # 4/17/2001 Scott Harrison
   
   # Read in loncapa tags and metagroup tags.  Output various
   # useful files for viewing, compiling, monitoring, updating,
   # and installing.
   
   # This code works well.  HOWEVER, I was in a rush when I
   # wrote it.  Future plans are that the parsing should be
   # much more event-state based and the input should be
   # more XML-ish. -Scott
   
 # ---------------------------------------------- Read in command line arguments  # ---------------------------------------------- Read in command line arguments
 my ($file,$mode)=@ARGV;  my ($file,$mode)=@ARGV;
Line 179  ALL: ALL Line 190  ALL: ALL
 END  END
 close OUT;  close OUT;
           
       `install -o 500 -g 500 -m 0700 -d BinaryRoot/home/www`;
       open OUT,">>setup_file_list.txt";
       print OUT "BinaryRoot/home/www\n";
       close OUT;
     `install -d BinaryRoot/etc/pam.d`;      `install -d BinaryRoot/etc/pam.d`;
     open OUT,">>setup_file_list.txt";      open OUT,">>setup_file_list.txt";
     print OUT "BinaryRoot/etc/pam.d/passwd\n";      print OUT "BinaryRoot/etc/pam.d/passwd\n";
Line 564  sub make_files_build_segment { Line 579  sub make_files_build_segment {
     my $description;      my $description;
     my @allfiles=keys %{$info{'LOCATION'}{$distribution}};      my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
     my $tab="\t";      my $tab="\t";
     my $sources="all: ";      my $sources="# Dynamic Makefile generated by LON-CAPA build process\n\n";
       $sources.="SHELL=\"/bin/sh\"\n\n";
       $sources.="\nall: ";
     foreach my $d (@$dirs) {      foreach my $d (@$dirs) {
  # set other values   # set other values
  my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};   my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
Line 605  sub make_files_build_segment { Line 622  sub make_files_build_segment {
  $depstat=" alwaysrun";   $depstat=" alwaysrun";
     }      }
     $dependencies=~s/\s+/ $sdir/gs;      $dependencies=~s/\s+/ $sdir/gs;
       my @deps=split(/\s+/,$dependencies);
       shift @deps;
       my $testing=<<END;
    \@if !(echo "");\\
           then echo "**** LON-CAPA WARNING **** Strange shell. Check your path settings.";\\
   END
       foreach my $d (@deps) {
    $testing.=<<END;
    elif !(test -r $d);\\
    then echo "**** LON-CAPA WARNING **** missing the file: $d";\\
   END
       }
       chop $testing;
     $description.=<<END;      $description.=<<END;
 $source2: $dependencies$depstat  $source2: $depstat
 ${tab}cd $directory; sh ./$buildfile  $testing
           else \\
       ${tab}cd $directory; sh ./$buildfile;\\
           fi
   
 END  END
  }   }
Line 670  END Line 703  END
  my $rot=$filesfull[$i];   my $rot=$filesfull[$i];
  $rot=~s/[^\/]+$/\./ if $rot=~/\*/;   $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
  my ($owner,$group)=split(/\:/,$devchown);   my ($owner,$group)=split(/\:/,$devchown);
  if ($category ne 'conf') {   if ($category ne 'conf' && $category ne 'symbolic link') {
     $description.=<<END if $category ne 'symbolic link';      if ($source!~/\*/) {
    $description.=<<END;
   \ttest -e \$(SOURCE)/$source \&\& install -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot || echo "**** LON-CAPA WARNING **** CVS source file does not exist: \$(SOURCE)/$source"
   END
                       }
       else {
    $description.=<<END;
 \tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  \tinstall -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
 END  END
       }
                 }                  }
     }      }
  }   }
Line 723  END Line 763  END
  my ($owner,$group)=split(/\:/,$devchown);   my ($owner,$group)=split(/\:/,$devchown);
  if ($category eq 'conf') {   if ($category eq 'conf') {
     $description.=<<END;      $description.=<<END;
 \tinstall -b -S `date +'.\%Y\%m\%d\%H\%M\%S'` -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot  \tcp -p \$(TARGET)/$rot \$(TARGET)/$rot`date +'.\%Y\%m\%d\%H\%M\%S'` 2>/dev/null; install -o $owner -g $group -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
 END  END
                 }                  }
     }      }
Line 1325  END Line 1365  END
  my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};   my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
  my $fdescription=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'DESCRIPTION'};   my $fdescription=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'DESCRIPTION'};
  my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};   my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
    my $source2=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
  my $note=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'NOTE'};   my $note=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'NOTE'};
  $note.="<BR>" if $note;   $note.="<BR>" if $note;
  my $listing=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'FILES'};   my $listing=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'FILES'};
Line 1357  END Line 1398  END
  $source="<FONT COLOR=#FF0000>$source</FONT>";   $source="<FONT COLOR=#FF0000>$source</FONT>";
     }      }
  }   }
    my $checksum;
    my $checksum_source;
    my $checksum_target;
  if ($mode eq 'status') {   if ($mode eq 'status') {
     $filestatus='';      $filestatus='';
     my $fs;      my $fs;
Line 1379  END Line 1423  END
     }      }
     else {      else {
  $fs=`find /$filesfull[$i] -prune -printf "\%m\t\%u\t\%g" 2>/dev/null`;   $fs=`find /$filesfull[$i] -prune -printf "\%m\t\%u\t\%g" 2>/dev/null`;
    if (-f "/$filesfull[$i]" && !(-l "/$filesfull[$i]")) {
       $checksum_source=`md5sum ../../$source2 | cut -d ' ' -f1`;
       chop $checksum_source;
       $checksum_target=`md5sum /$filesfull[$i] | cut -d ' ' -f1`;
       chop $checksum_target;
   #    warn ("CS: $checksum_source, CT: $checksum_target\n");
       unless ($checksum_source eq $checksum_target) {
    $checksum="<BR><B><U>CHECKSUM DIFFERENCE</U></B>";
       }
    }
     }      }
     my $fsl=`find /$filesfull[$i] -type l -prune -printf "\%m\t\%u\t\%g" 2>/dev/null`;      my $fsl=`find /$filesfull[$i] -type l -prune -printf "\%m\t\%u\t\%g" 2>/dev/null`;
     unless ($fs || $filestatus) {      unless ($fs || $filestatus) {
Line 1402  END Line 1456  END
     $s='';      $s='';
  }   }
  if ($fs eq "$chmod$s$chown" && $fs eq "$devchmod$s$devchown") {   if ($fs eq "$chmod$s$chown" && $fs eq "$devchmod$s$devchown") {
     $filestatus='<TD BGCOLOR=#FFFFFF>runtime+development</TD>';      $filestatus="<TD BGCOLOR=#FFFFFF>runtime+development$checksum</TD>";
  }   }
  elsif ($fs eq "$chmod$s$chown") {   elsif ($fs eq "$chmod$s$chown") {
     $filestatus='<TD BGCOLOR=#FFFFFF>runtime</TD>';      $filestatus="<TD BGCOLOR=#FFFFFF>runtime$checksum</TD>";
  }   }
  elsif ($fs eq "$devchmod$s$devchown") {   elsif ($fs eq "$devchmod$s$devchown") {
     $filestatus='<TD BGCOLOR=#FFFFFF>development</TD>';      $filestatus="<TD BGCOLOR=#FFFFFF>development$checksum</TD>";
  }   }
  else {   else {
     $filestatus="<TD BGCOLOR=#FFFFFF><B><U>ERROR</U></B><BR>$fs</TD>";      $filestatus="<TD BGCOLOR=#FFFFFF><B><U>ERROR</U></B><BR>$fs</TD>";

Removed from v.1.25  
changed lines
  Added in v.1.37


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