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