-- 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;
 | 
						|
}
 |