Diff for /loncom/build/Attic/parse.pl between versions 1.6 and 1.12

version 1.6, 2000/12/09 19:29:16 version 1.12, 2000/12/11 19:02:48
Line 65  while ($info1=~/\<loncapa\s+(.*?)\>/isg) Line 65  while ($info1=~/\<loncapa\s+(.*?)\>/isg)
     }      }
     elsif (uc($hash{'TYPE'}) eq "LOCATION") {      elsif (uc($hash{'TYPE'}) eq "LOCATION") {
         $info{$hash{'TYPE'}}{$hash{'DIST'}}{$hash{'TARGET'}}{'CATEGORY'}=                               $hash{'CATEGORY'};          $info{$hash{'TYPE'}}{$hash{'DIST'}}{$hash{'TARGET'}}{'CATEGORY'}=                               $hash{'CATEGORY'};
           $info{$hash{'TYPE'}}{$hash{'DIST'}}{$hash{'TARGET'}}{'LINKTO'}=                               $hash{'LINKTO'};
         $info{$hash{'TYPE'}}{$hash{'DIST'}}{$hash{'TARGET'}}{'SOURCE'}=                                               $hash{'SOURCE'};          $info{$hash{'TYPE'}}{$hash{'DIST'}}{$hash{'TARGET'}}{'SOURCE'}=                                               $hash{'SOURCE'};
         # get surrounding metagroup information          # get surrounding metagroup information
         my $ckeystring=$keystring; $ckeystring=~s/(SOURCE\=\"[^"]*)\*/$1\\\*/g;          my $ckeystring=$keystring; $ckeystring=~s/(SOURCE\=\"[^"]*)\*/$1\\\*/g;
Line 75  while ($info1=~/\<loncapa\s+(.*?)\>/isg) Line 76  while ($info1=~/\<loncapa\s+(.*?)\>/isg)
         foreach my $m (@meta) {          foreach my $m (@meta) {
     if ($data=~/\<($m)\>(.*?)\<\/$m\>/sgi) {      if ($data=~/\<($m)\>(.*?)\<\/$m\>/sgi) {
  my ($key,$value)=($1,$2);   my ($key,$value)=($1,$2);
  $info{$hash{'TYPE'}}{$hash{'DIST'}}{$hash{'TARGET'}}{$key}=   $info{$hash{'TYPE'}}{$hash{'DIST'}}{$hash{'TARGET'}}{uc($key)}=
                                                     $value;                                                      $value;
     }      }
         }          }
Line 85  while ($info1=~/\<loncapa\s+(.*?)\>/isg) Line 86  while ($info1=~/\<loncapa\s+(.*?)\>/isg)
     }      }
 }  }
   
 if ($mode eq "ALL" || $mode eq "HTML") {  my $a;
     my $a;  my @directories;
   if ($mode eq "HTML") {
     $a=&begin_description_page;      $a=&begin_description_page;
     print $a;      print $a;
     $a=&make_rpm_description_block;      $a=&make_rpm_description_block;
Line 101  if ($mode eq "ALL" || $mode eq "HTML") { Line 103  if ($mode eq "ALL" || $mode eq "HTML") {
     $a=&end_description_page;      $a=&end_description_page;
     print $a;      print $a;
 }  }
   elsif ($mode eq "SPEC") {
       my $out=$info{'RPM'}{'Name'} . '-' . $info{'RPM'}{'Version'} . '.spec';
       open OUT,">$out";
       $a=&make_rpm_spec_block;
       print OUT $a;
       $a=&make_rpm_build_block;
       print OUT $a;
       @directories=&determine_directory_structure;
       $a=&make_directory_structure_spec_block(\@directories);
       print OUT $a;
       $a=&make_directory_and_file_structure_spec_block(\@directories);
       print OUT $a;
       $a=&end_spec_page;
       print OUT $a;
       close OUT;
   }
   elsif ($mode eq "LCMakefile") {
       @directories=&determine_directory_structure;
       $a=&make_directory_install_segment(\@directories);
       print $a;
       $a=&make_files_install_segment(\@directories);
       print $a;
       $a=&make_links_install_segment(\@directories);
       print $a;
   }
   elsif ($mode eq "BinaryRoot") {
       mkdir "BinaryRoot",0755;
       open OUT,">Makefile.BinaryRoot";
       @directories=&determine_directory_structure;
       $a=&make_directory_binaryroot_segment(\@directories);
       print OUT $a;
       $a=&make_files_binaryroot_segment(\@directories);
       print OUT $a;
       $a=&make_links_binaryroot_segment(\@directories);
       print OUT $a;
       close OUT;
       print `make -f Makefile.BinaryRoot TARGET='BinaryRoot' SOURCE='../..' directories`;
       print `make -f Makefile.BinaryRoot TARGET='BinaryRoot' SOURCE='../..' files`;
       print `make -f Makefile.BinaryRoot TARGET='BinaryRoot' SOURCE='../..' links`;
       open OUT,">base_file_list.txt";
       $a=&make_file_list(\@directories);
       print OUT $a;
       close OUT;
       
   }
   elsif ($mode eq "status") {
   }
   elsif ($mode eq "update") {
   }
   elsif ($mode eq "freshinstall") {
   }
   
   # ------------------------------------------------------ a list of file targets
   sub make_file_list {
       my ($dirs)=@_;
       my $description;
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # set other values
    my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
    $dirdescription="(" . $dirdescription . ")" if $dirdescription;
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
           }
    my $pwd=`pwd`; chop $pwd;
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
    my $rot="/".$filesfull[$i];
    if ($rot=~/\*/) {
       $rot=~s/[^\/]+$// if $rot=~/\*/;
       my $listing=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'FILES'};
       chop $listing;
       my @list=split(/\s+/,$listing);
       my $rot2;
       foreach my $l (@list) {
    $l=~s/^\s*//; $l=~s/\s*$//;
    $rot2.="BinaryRoot$rot$l\n" if length($l);
       }
       chop $rot2;
       $rot=$rot2;
    }
    else {
       $rot="BinaryRoot$rot";
    }
    $description.=<<END;
   $rot
   END
       }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # --------------------------------- Commands to make BinaryRoot directories
   sub make_directory_binaryroot_segment {
       my ($dirs)=@_;
       my $description=<<END;
   directories:
   END
       foreach my $d (@$dirs) {
    my $category=$info{'DIRECTORY'}{$distribution}{$d}{'CATEGORY'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $own=$devchown; $own=~s/\:/\,/;
    $description.=<<END;
   \tinstall -m $devchmod -d \$(TARGET)/$d
   END
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # --------------------------------------- Commands to make BinaryRoot files
   sub make_files_binaryroot_segment {
       my ($dirs)=@_;
       my $description=<<END;
   files:
   END
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # set other values
    my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
    $dirdescription="(" . $dirdescription . ")" if $dirdescription;
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
       $description.=<<END;
   \t# $d $dirdescription
   END
           }
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $source=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'SOURCE'};
    my $rot=$filesfull[$i];
    $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    $description.=<<END if $category ne 'symbolic link';
   \tinstall -m $devchmod \$(SOURCE)/$source \$(TARGET)/$rot
   END
       }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # ------------------------------ Commands to make BinaryRoot symbolic links
   sub make_links_binaryroot_segment {
       my ($dirs)=@_;
       my $description=<<END;
   links:
   END
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $linkto=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'LINKTO'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    $description.=<<END if $category eq 'symbolic link';
   \tln -s /$linkto \$(TARGET)/$filesfull[$i]
   END
       }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # --------------------------------- Installation commands to install directories
   sub make_directory_install_segment {
       my ($dirs)=@_;
       my $description=<<END;
   directories:
   END
       foreach my $d (@$dirs) {
    my $category=$info{'DIRECTORY'}{$distribution}{$d}{'CATEGORY'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $own=$devchown; $own=~s/\:/\,/;
    $description.=<<END;
   \tinstall -m $devchmod -d \$(SOURCE)/$d \$(ROOT)/$d
   END
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # --------------------------------------- Installation commands to install files
   sub make_files_install_segment {
       my ($dirs)=@_;
       my $description=<<END;
   files:
   END
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # set other values
    my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
    $dirdescription="(" . $dirdescription . ")" if $dirdescription;
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
       $description.=<<END;
   \t# $d $dirdescription
   END
           }
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $rot=$filesfull[$i];
    $rot=~s/[^\/]+$/\./ if $rot=~/\*/;
    $description.=<<END if $category ne 'symbolic link';
   \tinstall -m $devchmod \$(SOURCE)/$filesfull[$i] \$(ROOT)/$rot
   END
       }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # ------------------------------ Installation commands to install symbolic links
   sub make_links_install_segment {
       my ($dirs)=@_;
       my $description=<<END;
   links:
   END
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $linkto=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'LINKTO'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    $description.=<<END if $category eq 'symbolic link';
   \tln -s /$linkto \$(ROOT)/$filesfull[$i]
   END
       }
    }
       }
       $description.=<<END;
   
   END
       return $description;
   }
   
   # --------------------------------------------------------- Make RPM .spec block
   sub make_rpm_spec_block {
       my $pwd=`pwd`; chop $pwd;
       my $buildroot="$pwd/LON-CAPA-BuildRoot";
       my $source=$info{'RPM'}{'Name'} . "-" . $info{'RPM'}{'Version'} . '.tar.gz';
       my $description=<<END;
   Summary: $info{'RPM'}{'Summary'}
   Name: $info{'RPM'}{'Name'}
   Version: $info{'RPM'}{'Version'}
   Release: $info{'RPM'}{'Release'}
   Vendor: $info{'RPM'}{'Vendor'} 
   BuildRoot: $buildroot
   Copyright: $info{'RPM'}{'Copyright'}
   Group: $info{'RPM'}{'Group'}
   Source: $source
   AutoReqProv: $info{'RPM'}{'AutoReqProv'}
   \%description
   $info{'RPM'}{'description'}
   
   END
       return $description;
   }
   
   # --------------------------------------------------- Make RPM build .spec block
   sub make_rpm_build_block {
       my $pwd=`pwd`; chop $pwd;
       my $buildroot="$pwd/LON-CAPA-BuildRoot";
       my $sourceroot="$pwd/LON-CAPA-SourceRoot";
       my $description=<<END;
   
   \%prep
   \%setup
   
   \%build
   rm -Rf "$buildroot"
   
   \%install
   make -f LCMakefile ROOT="\$RPM_BUILD_ROOT" SOURCE="$sourceroot" directories
   make -f LCMakefile ROOT="\$RPM_BUILD_ROOT" SOURCE="$sourceroot" files
   make -f LCMakefile ROOT="\$RPM_BUILD_ROOT" SOURCE="$sourceroot" links
   
   \%pre
   $info{'RPM'}{'pre'}
   
   \%post
   \%postun
   
   \%files
   # \%doc README COPYING ChangeLog LICENSE
   END
       return $description;
   }
   
   # ------------------------------------- Make directory structure RPM .spec block
   sub make_directory_structure_spec_block {
       my ($dirs)=@_;
       foreach my $d (@$dirs) {
    my $category=$info{'DIRECTORY'}{$distribution}{$d}{'CATEGORY'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $own=$devchown; $own=~s/\:/\,/;
    $description.=<<END;
   \%dir \%attr($devchmod,$own) /$d
   END
       }
       return $description;
   }
   
   # ---------------------------- Make directory and file structure RPM .spec block
   sub make_directory_and_file_structure_spec_block {
       my ($dirs)=@_;
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       foreach my $d (@$dirs) {
    # set other values
    my $dirdescription=$info{'DIRECTORY'}{$distribution}{$d}{'DESCRIPTION'};
    $dirdescription="(" . $dirdescription . ")" if $dirdescription;
    # find files that are contained in this directory
    my @files;
    my @filesfull;
    foreach my $f (@allfiles) {
       if ($f=~/^$d\/([^\/]+)$/) {
    push @files,$1;
    push @filesfull,$f;
       }
    }
    # render starting HTML formatting elements
    if (@files) {
       $description.=<<END;
   # $d $dirdescription
   END
           }
    if (@files) {
               foreach my $i (0..$#files) {
    my $category=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'CATEGORY'};
    my $chown=$info{'OWNERSHIP'}{$category}{'CHOWN'};
    my $chmod=$info{'OWNERSHIP'}{$category}{'CHMOD'};
    my $devchown=$info{'DEVOWNERSHIP'}{$category}{'CHOWN'};
    my $devchmod=$info{'DEVOWNERSHIP'}{$category}{'CHMOD'};
    my $own=$devchown; $own=~s/\:/\,/;
    my $config="";
    $config="\%config " if $category eq 'conf';
    $devchmod='-' if $category eq 'symbolic link';
    $description.=<<END;
   $config\%attr($devchmod,$own) /$filesfull[$i]
   END
       }
    }
       }
       return $description;
   }
   
   # ----------------------------------------------------------- End RPM .spec page
   sub end_spec_page {
   }
   
 # ------------------------------------------------- Begin description page  # ------------------------------------------------------- Begin description page
 sub begin_description_page {  sub begin_description_page {
     my $description=<<END;      my $description=<<END;
 <HTML>  <HTML>
Line 118  sub begin_description_page { Line 564  sub begin_description_page {
 <LI>About this file  <LI>About this file
 <LI>Software Package Description  <LI>Software Package Description
 <LI>Directory Structure  <LI>Directory Structure
   <LI>File Type Ownership and Permissions
 <LI>File and Directory Structure  <LI>File and Directory Structure
 </UL>  </UL>
 <FONT SIZE=+2>About this file</FONT>  <FONT SIZE=+2>About this file</FONT>
Line 159  Group       : $info{'RPM'}{'Group'} Line 606  Group       : $info{'RPM'}{'Group'}
 License     : $info{'RPM'}{'Copyright'}  License     : $info{'RPM'}{'Copyright'}
 Summary     : $info{'RPM'}{'Summary'}  Summary     : $info{'RPM'}{'Summary'}
 Description :   Description : 
 <PRE>  
 $info{'RPM'}{'description'}  $info{'RPM'}{'description'}
 </PRE>  </PRE>
 </TD></TR>  </TD></TR>
Line 182  sub make_directory_structure_description Line 628  sub make_directory_structure_description
     my $description=<<END;      my $description=<<END;
 <FONT SIZE=+2>Directory Structure Description, $date</FONT>  <FONT SIZE=+2>Directory Structure Description, $date</FONT>
 <P>  <P>
   The directory structure description below shows only those
   directories which either contain LON-CAPA specific files
   or normally do not exist on a RedHat Linux system (and
   must be generated to allow proper placement of files
   during LON-CAPA run-time operation).
   </P>
   <P>
 <TABLE BORDER=1 CELLPADDING=3 CELLSPACING=0>  <TABLE BORDER=1 CELLPADDING=3 CELLSPACING=0>
 END  END
     my $maxcount=0;      my $maxcount=0;
       my @allfiles=keys %{$info{'LOCATION'}{$distribution}};
       my %diraccount; # hash to track which directories are accounted for
       foreach my $file (@allfiles) {
    $file=~/^(.*)\/([^\/]+)$/;
    $diraccount{$1}=1;
       }
     foreach my $d (@$dirs) {      foreach my $d (@$dirs) {
         my (@matches)=($d=~/\//g);          my (@matches)=($d=~/\//g);
  my $count=scalar(@matches);   my $count=scalar(@matches);
  $maxcount=$count if $count>$maxcount;   $maxcount=$count if $count>$maxcount;
    delete $diraccount{$d};
     }      }
     $description.=<<END;      $description.=<<END;
 <TR>  <TR>
Line 197  END Line 657  END
 <TH ALIGN=LEFT BGCOLOR=#FFFFFF><FONT COLOR=#FF0000>Development<BR>Permissions</FONT></TH>  <TH ALIGN=LEFT BGCOLOR=#FFFFFF><FONT COLOR=#FF0000>Development<BR>Permissions</FONT></TH>
 END  END
     $description.="<TH ALIGN=LEFT BGCOLOR=#FFFFFF COLSPAN=".($maxcount+1).">Directory Path</TH>\n";      $description.="<TH ALIGN=LEFT BGCOLOR=#FFFFFF COLSPAN=".($maxcount+1).">Directory Path</TH>\n";
       if (keys %diraccount) {
    $description.= "<TR><TD ALIGN=LEFT BGCOLOR=#FFFFFF COLSPAN=".($maxcount+4)."><I><PRE>Directories that are unaccounted for: \n";
    foreach my $d (keys %diraccount) {
       $description.="$d\n";
    }
    $description.="</PRE></I></TH></TR>\n";
       }
     foreach my $d (@$dirs) {      foreach my $d (@$dirs) {
  my $dtable=$d;   my $dtable=$d;
  $dtable=~s/\//\<\/TD\>\<TD\>/g;   $dtable=~s/\//\<\/TD\>\<TD\>/g;
Line 270  sub make_directory_and_file_structure_de Line 737  sub make_directory_and_file_structure_de
 <P>  <P>
 The icons on the left column correspond to the file type  The icons on the left column correspond to the file type
 specified in the second column.  The last column "Notes" shows compilation,  specified in the second column.  The last column "Notes" shows compilation,
 dependency, and configuration information.  dependency, and configuration information.  The CVS location
   shows the location of the binary source file (if applicable) needed to
   be copied to the target.  If the binary source file is not at
   the specified location, then the text is shown in 
   <FONT COLOR=#FF0000>red</FONT>.
 </P>  </P>
 <P>  <P>
 <TABLE BORDER=1 CELLPADDING=5 WIDTH=60%>  <TABLE BORDER=1 CELLPADDING=5 WIDTH=500>
 END  END
     my $counter=0;      my $counter=0;
     my @colorindex=("#80FF80","#80FFFF","#FFFF80");      my @colorindex=("#80FF80","#80FFFF","#FFFF80");
Line 327  END Line 798  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 $notes=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'NOTES'};   my $note=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'NOTE'};
    $note.="<BR>" if $note;
    my $listing=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'FILES'};
    my @E=split(/\s+/,$listing);
    $source=~/(.*)\/[^\/]+$/;
    my $sd=$1;
    my $eflag=0;
    foreach my $e (@E) {
       unless (-e "../../$sd/$e") {
    $e="<FONT COLOR=#FF0000>$e</FONT>";
    $eflag=1;
       }
    }
    $listing=join("\n",@E);
    $listing="<B>listing</B><BR><FONT SIZE=-2>$listing</FONT>" if $listing;
    $listing.="<BR>" if $listing;
    my $build=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'BUILD'};
    $build="<B>build</B><BR>$build" if $build;
    $build.="<BR>" if $build;
    my $dependencies=$info{'LOCATION'}{$distribution}{$filesfull[$i]}{'DEPENDENCIES'};
    $dependencies="<B>dependencies</B><BR>$dependencies" if $dependencies;
    $dependencies.="<BR>" if $dependencies;
    unless (-e "../../$source") {
       $source=~/([^\/]+)$/;
       my $s=$1;
       if ($source!~/\*/) {
    $source="<FONT COLOR=#FF0000>$source</FONT>";
       }
       elsif ($eflag) {
    $source="<FONT COLOR=#FF0000>$source</FONT>";
       }
    }
  $description.=<<END;   $description.=<<END;
 <TR>  <TR>
 <TD BGCOLOR=#A0A0A0><IMG SRC="$fcm{$category}.gif" ALT="$category"></TD>  <TD BGCOLOR=#A0A0A0><IMG SRC="$fcm{$category}.gif" ALT="$category"></TD>
Line 335  END Line 837  END
 <TD BGCOLOR=$color>$files[$i]</TD>  <TD BGCOLOR=$color>$files[$i]</TD>
 <TD BGCOLOR=$color>$fdescription&nbsp;</TD>  <TD BGCOLOR=$color>$fdescription&nbsp;</TD>
 <TD BGCOLOR=$color>$source</TD>  <TD BGCOLOR=$color>$source</TD>
 <TD BGCOLOR=$color>$notes&nbsp;</TD>  <TD BGCOLOR=$color>$note$listing$build$dependencies&nbsp;</TD>
 </TR>  </TR>
 END  END
     }      }

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


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