
-- I am too lazy to write my own documentation right now, this is what doxygen was designed for right?
113 lines
2.5 KiB
Perl
Executable File
113 lines
2.5 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
%subst = ( );
|
|
$quiet = 0;
|
|
|
|
while ( @ARGV ) {
|
|
$_ = shift @ARGV;
|
|
if ( s/^-// ) {
|
|
if ( /^l(.*)/ ) {
|
|
$v = ($1 eq "") ? shift @ARGV : $1;
|
|
($v =~ /\/$/) || ($v .= "/");
|
|
$_ = $v;
|
|
if ( /(.+)\@(.+)/ ) {
|
|
if ( exists $subst{$1} ) {
|
|
$subst{$1} = $2;
|
|
} else {
|
|
print STDERR "Unknown tag file $1 given with option -l\n";
|
|
&usage();
|
|
}
|
|
} else {
|
|
print STDERR "Argument $_ is invalid for option -l\n";
|
|
&usage();
|
|
}
|
|
}
|
|
elsif ( /^q/ ) {
|
|
$quiet = 1;
|
|
}
|
|
elsif ( /^\?|^h/ ) {
|
|
&usage();
|
|
}
|
|
else {
|
|
print STDERR "Illegal option -$_\n";
|
|
&usage();
|
|
}
|
|
}
|
|
else {
|
|
push (@files, $_ );
|
|
}
|
|
}
|
|
|
|
foreach $sub (keys %subst)
|
|
{
|
|
if ( $subst{$sub} eq "" )
|
|
{
|
|
print STDERR "No substitute given for tag file `$sub'\n";
|
|
&usage();
|
|
}
|
|
elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
|
|
{
|
|
print "Substituting $subst{$sub} for each occurrence of tag file $sub\n";
|
|
}
|
|
}
|
|
|
|
if ( ! @files ) {
|
|
if (opendir(D,".")) {
|
|
foreach $file ( readdir(D) ) {
|
|
$match = ".html";
|
|
next if ( $file =~ /^\.\.?$/ );
|
|
($file =~ /$match/) && (push @files, $file);
|
|
($file =~ /\.svg/) && (push @files, $file);
|
|
($file =~ "navtree.js") && (push @files, $file);
|
|
}
|
|
closedir(D);
|
|
}
|
|
}
|
|
|
|
if ( ! @files ) {
|
|
print STDERR "Warning: No input files given and none found!\n";
|
|
}
|
|
|
|
foreach $f (@files)
|
|
{
|
|
if ( ! $quiet ) {
|
|
print "Editing: $f...\n";
|
|
}
|
|
$oldf = $f;
|
|
$f .= ".bak";
|
|
unless (rename $oldf,$f) {
|
|
print STDERR "Error: cannot rename file $oldf\n";
|
|
exit 1;
|
|
}
|
|
if (open(F,"<$f")) {
|
|
unless (open(G,">$oldf")) {
|
|
print STDERR "Error: opening file $oldf for writing\n";
|
|
exit 1;
|
|
}
|
|
if ($oldf ne "tree.js") {
|
|
while (<F>) {
|
|
s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (xlink:href|href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
|
|
print G "$_";
|
|
}
|
|
}
|
|
else {
|
|
while (<F>) {
|
|
s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
|
|
print G "$_";
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
print STDERR "Warning file $f does not exist\n";
|
|
}
|
|
unlink $f;
|
|
}
|
|
|
|
sub usage {
|
|
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
|
|
print STDERR "Options:\n";
|
|
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
|
|
print STDERR " -q Quiet mode\n\n";
|
|
exit 1;
|
|
}
|