]> matita.cs.unibo.it Git - helm.git/blob - helm/ocaml/getter/mkindexes.pl
ocaml 3.09 transition
[helm.git] / helm / ocaml / getter / mkindexes.pl
1 #!/usr/bin/perl -w
2 # To be invoked in a directory where a tree of XML files of the HELM library is
3 # rooted. This script will then creates INDEX files in all directories of the
4 # tree.
5 use strict;
6 my $index_fname = "INDEX";
7 sub getcwd() {
8   my $pwd = `pwd`;
9   chomp $pwd;
10   return $pwd;
11 }
12 sub add_trailing_slash($) {
13   my ($dir) = @_;
14   return $dir if ($dir =~ /\/$/);
15   return "$dir/";
16 }
17 sub indexable($) {
18   my ($fname) = @_;
19   return 1 if ($fname =~ /\.(ind|types|body|var|theory).xml/);
20   return 0;
21 }
22 my @todo = (getcwd());
23 while (my $dir = shift @todo) {
24   print "$dir\n";
25   chdir $dir or die "Can't chdir to $dir\n";
26   open LS, 'ls | sed \'s/\\.gz//\' | sort | uniq |';
27   open INDEX, "> $index_fname"
28     or die "Can't open $index_fname in " . getcwd() .  "\n";
29   while (my $entry = <LS>) {
30     chomp $entry;
31     if (-d $entry) {
32       print INDEX add_trailing_slash($entry) . "\n";
33       push @todo, getcwd() . "/$entry";
34     } else {
35       print INDEX "$entry\n" if indexable($entry);
36     }
37   }
38   close INDEX;
39   close LS;
40 }