1*912701f9SAndroid Build Coastguard Worker#!/usr/bin/perl 2*912701f9SAndroid Build Coastguard Worker 3*912701f9SAndroid Build Coastguard Worker#################################################################################### 4*912701f9SAndroid Build Coastguard Worker# genindex.pl: 5*912701f9SAndroid Build Coastguard Worker# Reads the source directory and creates an index.html with the link 6*912701f9SAndroid Build Coastguard Worker# Author: Ram Viswanadha 7*912701f9SAndroid Build Coastguard Worker# 8*912701f9SAndroid Build Coastguard Worker#################################################################################### 9*912701f9SAndroid Build Coastguard Workeruse File::Find; 10*912701f9SAndroid Build Coastguard Workeruse File::Basename; 11*912701f9SAndroid Build Coastguard Workeruse IO::File; 12*912701f9SAndroid Build Coastguard Workeruse Cwd; 13*912701f9SAndroid Build Coastguard Workeruse File::Copy; 14*912701f9SAndroid Build Coastguard Workeruse Getopt::Long; 15*912701f9SAndroid Build Coastguard Workeruse File::Path; 16*912701f9SAndroid Build Coastguard Workeruse File::Copy; 17*912701f9SAndroid Build Coastguard Worker 18*912701f9SAndroid Build Coastguard WorkerGetOptions( 19*912701f9SAndroid Build Coastguard Worker "--sourcedir=s" => \$sourceDir, 20*912701f9SAndroid Build Coastguard Worker "--destdir=s" => \$destDir, 21*912701f9SAndroid Build Coastguard Worker "--href=s" => \$href 22*912701f9SAndroid Build Coastguard Worker ); 23*912701f9SAndroid Build Coastguard Worker 24*912701f9SAndroid Build Coastguard Worker 25*912701f9SAndroid Build Coastguard Workerusage() unless defined $sourceDir; 26*912701f9SAndroid Build Coastguard Workerusage() unless defined $destDir; 27*912701f9SAndroid Build Coastguard Workerusage() unless defined $href; 28*912701f9SAndroid Build Coastguard Worker 29*912701f9SAndroid Build Coastguard Worker 30*912701f9SAndroid Build Coastguard Worker# create list of html files 31*912701f9SAndroid Build Coastguard Workermy @list; 32*912701f9SAndroid Build Coastguard Workerif (@ARGV) { 33*912701f9SAndroid Build Coastguard Worker @list = @ARGV; 34*912701f9SAndroid Build Coastguard Worker foreach (@list) { $_ .= ".html" unless (/\.html$/i); } 35*912701f9SAndroid Build Coastguard Worker} else { 36*912701f9SAndroid Build Coastguard Worker opendir(DIR,$sourceDir); 37*912701f9SAndroid Build Coastguard Worker @list = grep{/\.html$/} readdir(DIR); 38*912701f9SAndroid Build Coastguard Worker closedir(DIR); 39*912701f9SAndroid Build Coastguard Worker} 40*912701f9SAndroid Build Coastguard Worker$outfile = $destDir."/index.html"; 41*912701f9SAndroid Build Coastguard Worker$outFH = IO::File->new($outfile,"w") 42*912701f9SAndroid Build Coastguard Worker or die "could not open the file $outfile for writing: $! \n"; 43*912701f9SAndroid Build Coastguard Workerprint $outFH "<html>\n"; 44*912701f9SAndroid Build Coastguard Workerprint $outFH "\t<head>Index of all comparison charts</head>\n"; 45*912701f9SAndroid Build Coastguard Workerprint $outFH "\t<body bgcolor=\"#FFFFFF\">\n"; 46*912701f9SAndroid Build Coastguard Workerprint $outFH "\t\t<ul>\n"; 47*912701f9SAndroid Build Coastguard Worker# now convert 48*912701f9SAndroid Build Coastguard Workerforeach $item (@list){ 49*912701f9SAndroid Build Coastguard Worker next if($item eq "." || $item eq ".." || $item eq "index.html"); 50*912701f9SAndroid Build Coastguard Worker ($s1, $s2) = split(/\./,$item); 51*912701f9SAndroid Build Coastguard Worker #grab the english translation 52*912701f9SAndroid Build Coastguard Worker $inFH = IO::File->new($item,"r") 53*912701f9SAndroid Build Coastguard Worker or die "could not open the file $outfile for reading: $! \n"; 54*912701f9SAndroid Build Coastguard Worker $fullName=""; 55*912701f9SAndroid Build Coastguard Worker while(defined ($line=<$inFH>)){ 56*912701f9SAndroid Build Coastguard Worker if($line =~ /.*?(\(.*\).*Cover Page.*)/){ 57*912701f9SAndroid Build Coastguard Worker $line =~ /.*?(\(.*\))/; 58*912701f9SAndroid Build Coastguard Worker $fullName = $1; 59*912701f9SAndroid Build Coastguard Worker if($fullName eq ""){ 60*912701f9SAndroid Build Coastguard Worker print $line."\n"; 61*912701f9SAndroid Build Coastguard Worker } 62*912701f9SAndroid Build Coastguard Worker break; 63*912701f9SAndroid Build Coastguard Worker } 64*912701f9SAndroid Build Coastguard Worker } 65*912701f9SAndroid Build Coastguard Worker 66*912701f9SAndroid Build Coastguard Worker print $outFH "\t\t\t<li><a href=\"$href/$item\">$s1</a> $fullName</li>\n"; 67*912701f9SAndroid Build Coastguard Worker close($inFH); 68*912701f9SAndroid Build Coastguard Worker} 69*912701f9SAndroid Build Coastguard Worker 70*912701f9SAndroid Build Coastguard Workerprint $outFH "\t\t</ul>\n"; 71*912701f9SAndroid Build Coastguard Workerprint $outFH "\t</body>\n"; 72*912701f9SAndroid Build Coastguard Workerprint $outFH "</html>\n"; 73*912701f9SAndroid Build Coastguard Workerclose($outFH); 74*912701f9SAndroid Build Coastguard Worker 75*912701f9SAndroid Build Coastguard Worker#----------------------------------------------------------------------- 76*912701f9SAndroid Build Coastguard Workersub usage { 77*912701f9SAndroid Build Coastguard Worker print << "END"; 78*912701f9SAndroid Build Coastguard WorkerUsage: 79*912701f9SAndroid Build Coastguard Workertxt2ldml.pl 80*912701f9SAndroid Build Coastguard WorkerOptions: 81*912701f9SAndroid Build Coastguard Worker --sourcedir=<directory> 82*912701f9SAndroid Build Coastguard Worker --destdir=<directory> 83*912701f9SAndroid Build Coastguard Worker --href=<The URL to be prepended> 84*912701f9SAndroid Build Coastguard Worker 85*912701f9SAndroid Build Coastguard WorkerEND 86*912701f9SAndroid Build Coastguard Worker exit(0); 87*912701f9SAndroid Build Coastguard Worker} 88