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}=0;}
34: foreach my $list (@{ $usage }) {
35: foreach my $file (@{ $list }) {
36: if (exists($all{$file})) { $all{$file}++; } else { $no_exist{$file}++; }
37: }
38: }
39: print("Usage count for existing Files:\n");
40: foreach my $file (sort {uc($a) cmp uc($b)} (keys(%all))) {
41: printf("%-50s: %s\n",$file,$all{$file});
42: }
43: print("Usage count for nonexistint Files:\n");
44: foreach my $file (sort {uc($a) cmp uc($b)} (keys(%no_exist))) {
45: printf("%-50s: %s\n",$file,$no_exist{$file});
46: }
47: }
48:
49: sub main {
50: my @all_files=&get_all_files();
51: my @author_usage=&get_usage('author');
52: my @course_usage=&get_usage('course');
53: my @developer_usage=&get_usage('developer');
54:
55: &print_unused(\@all_files,[\@author_usage,\@course_usage,
56: \@developer_usage]);
57: }
58:
59: &main;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>