[68] | 1 | #!/usr/bin/perl |
---|
| 2 | |
---|
| 3 | %subst = ( ); |
---|
| 4 | $quiet = 0; |
---|
| 5 | |
---|
| 6 | if (open(F,"search.cfg")) |
---|
| 7 | { |
---|
| 8 | $_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; |
---|
| 9 | $_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; |
---|
| 10 | } |
---|
| 11 | |
---|
| 12 | while ( @ARGV ) { |
---|
| 13 | $_ = shift @ARGV; |
---|
| 14 | if ( s/^-// ) { |
---|
| 15 | if ( /^l(.*)/ ) { |
---|
| 16 | $v = ($1 eq "") ? shift @ARGV : $1; |
---|
| 17 | ($v =~ /\/$/) || ($v .= "/"); |
---|
| 18 | $_ = $v; |
---|
| 19 | if ( /(.+)\@(.+)/ ) { |
---|
| 20 | if ( exists $subst{$1} ) { |
---|
| 21 | $subst{$1} = $2; |
---|
| 22 | } else { |
---|
| 23 | print STDERR "Unknown tag file $1 given with option -l\n"; |
---|
| 24 | &usage(); |
---|
| 25 | } |
---|
| 26 | } else { |
---|
| 27 | print STDERR "Argument $_ is invalid for option -l\n"; |
---|
| 28 | &usage(); |
---|
| 29 | } |
---|
| 30 | } |
---|
| 31 | elsif ( /^q/ ) { |
---|
| 32 | $quiet = 1; |
---|
| 33 | } |
---|
| 34 | elsif ( /^\?|^h/ ) { |
---|
| 35 | &usage(); |
---|
| 36 | } |
---|
| 37 | else { |
---|
| 38 | print STDERR "Illegal option -$_\n"; |
---|
| 39 | &usage(); |
---|
| 40 | } |
---|
| 41 | } |
---|
| 42 | else { |
---|
| 43 | push (@files, $_ ); |
---|
| 44 | } |
---|
| 45 | } |
---|
| 46 | |
---|
| 47 | foreach $sub (keys %subst) |
---|
| 48 | { |
---|
| 49 | if ( $subst{$sub} eq "" ) |
---|
| 50 | { |
---|
| 51 | print STDERR "No substitute given for tag file `$sub'\n"; |
---|
| 52 | &usage(); |
---|
| 53 | } |
---|
| 54 | elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) |
---|
| 55 | { |
---|
| 56 | print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; |
---|
| 57 | } |
---|
| 58 | } |
---|
| 59 | |
---|
| 60 | if ( ! @files ) { |
---|
| 61 | if (opendir(D,".")) { |
---|
| 62 | foreach $file ( readdir(D) ) { |
---|
| 63 | $match = ".html"; |
---|
| 64 | next if ( $file =~ /^\.\.?$/ ); |
---|
| 65 | ($file =~ /$match/) && (push @files, $file); |
---|
| 66 | ($file =~ "tree.js") && (push @files, $file); |
---|
| 67 | } |
---|
| 68 | closedir(D); |
---|
| 69 | } |
---|
| 70 | } |
---|
| 71 | |
---|
| 72 | if ( ! @files ) { |
---|
| 73 | print STDERR "Warning: No input files given and none found!\n"; |
---|
| 74 | } |
---|
| 75 | |
---|
| 76 | foreach $f (@files) |
---|
| 77 | { |
---|
| 78 | if ( ! $quiet ) { |
---|
| 79 | print "Editing: $f...\n"; |
---|
| 80 | } |
---|
| 81 | $oldf = $f; |
---|
| 82 | $f .= ".bak"; |
---|
| 83 | unless (rename $oldf,$f) { |
---|
| 84 | print STDERR "Error: cannot rename file $oldf\n"; |
---|
| 85 | exit 1; |
---|
| 86 | } |
---|
| 87 | if (open(F,"<$f")) { |
---|
| 88 | unless (open(G,">$oldf")) { |
---|
| 89 | print STDERR "Error: opening file $oldf for writing\n"; |
---|
| 90 | exit 1; |
---|
| 91 | } |
---|
| 92 | if ($oldf ne "tree.js") { |
---|
| 93 | while (<F>) { |
---|
| 94 | s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; |
---|
| 95 | print G "$_"; |
---|
| 96 | } |
---|
| 97 | } |
---|
| 98 | else { |
---|
| 99 | while (<F>) { |
---|
| 100 | s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; |
---|
| 101 | print G "$_"; |
---|
| 102 | } |
---|
| 103 | } |
---|
| 104 | } |
---|
| 105 | else { |
---|
| 106 | print STDERR "Warning file $f does not exist\n"; |
---|
| 107 | } |
---|
| 108 | unlink $f; |
---|
| 109 | } |
---|
| 110 | |
---|
| 111 | sub usage { |
---|
| 112 | print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; |
---|
| 113 | print STDERR "Options:\n"; |
---|
| 114 | print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; |
---|
| 115 | print STDERR " -q Quiet mode\n\n"; |
---|
| 116 | exit 1; |
---|
| 117 | } |
---|