File:  [LON-CAPA] / doc / help / usage.pl
Revision 1.2: download - view: text, annotated - select for diffs
Tue Sep 14 19:57:15 2004 UTC (19 years, 7 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
- addin which manual it is in

    1: #!/usr/bin/perl
    2: use strict;
    3: 
    4: use HTML::TokeParser;
    5: use Getopt::Long;
    6: 
    7: my ($help) = (0,0,0);
    8: &GetOptions( "help"     => \$help);
    9: 
   10: sub get_all_files {
   11:     my $dir="../../loncom/html/adm/help/tex/";
   12:     opendir(DIR,$dir);
   13:     my @files=sort {uc($a) cmp uc($b)} (readdir(DIR));
   14:     return @files;
   15: }
   16: 
   17: sub get_usage {
   18:     my ($which)=@_;
   19:     my @files;
   20:     my $p = HTML::TokeParser->new("$which.manual.texxml");
   21:     while (my $token = $p->get_token()) {
   22: 	if ($token->[0] eq 'S' && $token->[1] eq 'file') {
   23: 	    push(@files,$token->[2]{'name'});
   24: 	}
   25:     }
   26:     return @files;
   27: }
   28: 
   29: sub print_unused {
   30:     my ($all,$usage)=@_;
   31:     my %all;
   32:     my %no_exist;
   33:     foreach my $file (@{ $all }) {$all{$file}=[];}
   34:     my @order=('author','course','developer');
   35:     foreach my $list (@{ $usage }) {
   36: 	foreach my $file (@{ $list }) {
   37: 	    if (exists($all{$file})) { 
   38: 		push(@{$all{$file}},$order[0]);
   39: 	    } else {
   40: 		push(@{$no_exist{$file}},$order[0]);
   41: 	    }
   42: 	}
   43: 	shift(@order);
   44:     }
   45:     print("Usage count for existing Files:\n");
   46:     foreach my $file (sort {uc($a) cmp uc($b)} (keys(%all))) {
   47: 	if (scalar(@{ $all{$file} }) ne 0) {
   48: 	    printf("%-50s: %s in %s\n",$file,scalar(@{$all{$file}}),
   49: 		   join(',',@{$all{$file}}));
   50: 	} else {
   51: 	    printf("%-50s: %s\n",$file,scalar(@{$all{$file}}));
   52: 	}
   53:     }
   54:     print("Usage count for nonexistint Files:\n");
   55:     foreach my $file (sort {uc($a) cmp uc($b)} (keys(%no_exist))) {
   56: 	printf("%-50s: %s in %s\n",$file,scalar(@{$no_exist{$file}}),
   57: 	       join(',',@{$no_exist{$file}}));
   58:     }
   59: }
   60: 
   61: sub main {
   62:     my @all_files=&get_all_files();
   63:     my @author_usage=&get_usage('author');
   64:     my @course_usage=&get_usage('course');
   65:     my @developer_usage=&get_usage('developer');
   66: 
   67:     &print_unused(\@all_files,[\@author_usage,\@course_usage,
   68: 			       \@developer_usage]);
   69: }
   70: 
   71: &main;

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