Initial import to Tizen
[profile/ivi/python-pyOpenSSL.git] / doc / tools / node2label.pl
1 #! /usr/bin/env perl
2
3 use English;
4 $INPLACE_EDIT = '';
5
6 # read the labels, then reverse the mappings
7 require "labels.pl";
8
9 %nodes = ();
10 my $key;
11 # sort so that we get a consistent assignment for nodes with multiple labels 
12 foreach $label (sort keys %external_labels) {
13   $key = $external_labels{$label};
14   $key =~ s|^/||;
15   $nodes{$key} = $label;
16 }
17
18 # This adds the "internal" labels added for indexing.  These labels will not
19 # be used for file names.
20 require "internals.pl";
21 foreach $label (keys %internal_labels) {
22   $key = $internal_labels{$label};
23   $key =~ s|^/||;
24   if (defined($nodes{$key})) {
25     $nodes{$label} = $nodes{$key};
26   }
27 }
28
29 # collect labels that have been used
30 %newnames = ();
31
32 while (<>) {
33   # don't want to do one s/// per line per node
34   # so look for lines with hrefs, then do s/// on nodes present
35   if (/(HREF|href)=[\"\']([^\#\"\']*)html[\#\"\']/) {
36     @parts = split(/(HREF|href)\=[\"\']/);
37     shift @parts;
38     for $node (@parts) {
39       $node =~ s/[\#\"\'].*$//g;
40       chop($node);
41       if (defined($nodes{$node})) {
42         $label = $nodes{$node};
43         if (s/(HREF|href)=([\"\'])$node([\#\"\'])/href=$2$label.html$3/g) {
44           s/(HREF|href)=([\"\'])$label.html/href=$2$label.html/g;
45           $newnames{$node} = "$label.html";
46         }
47       }
48     }
49   }
50   print;
51 }
52
53 foreach $oldname (keys %newnames) {
54   rename($oldname, $newnames{$oldname});
55 }