source: josm/trunk/geticons.pl @ 3945

Last change on this file since 3945 was 3945, checked in by stoecker, 13 years ago

fix wrongly detected icon

  • Property svn:executable set to *
File size: 4.2 KB
Line 
1#! /usr/bin/perl -w
2# short tool to find out all used icons and allows deleting unused icons
3# when building release files
4
5my @default = (
6  "styles/standard/*.xml",
7  "data/*.xml",
8  "src/org/openstreetmap/josm/*.java",
9  "src/org/openstreetmap/josm/*/*.java",
10  "src/org/openstreetmap/josm/*/*/*.java",
11  "src/org/openstreetmap/josm/*/*/*/*.java",
12  "src/org/openstreetmap/josm/*/*/*/*/*.java",
13  "src/org/openstreetmap/josm/*/*/*/*/*/*.java"
14);
15
16my %icons;
17
18my $o = $/;
19
20for my $arg (@ARGV ? @ARGV : @default)
21{
22  for my $file (glob($arg))
23  {
24    open(FILE,"<",$file) or die "Could not open $file\n";
25    #print "Read file $file\n";
26    $/ = $file =~ /\.java$/ ? ";" : $o;
27    my $extends = "";
28    while(my $l = <FILE>)
29    {
30      if($l =~ /src\s*=\s*["'](.*?)["']/)
31      {
32        my $img = "styles/standard/$1";
33        $img = "styles/$1" if((!-f "images/$img") && -f "images/styles/$1");
34        ++$icons{$img};
35      }
36      elsif($l =~ /icon\s*=\s*["']([^+]+?)["']/)
37      {
38        ++$icons{$1};
39      }
40
41      if($l =~ /ImageProvider\.get\(\"([^\"]*?)\"\)/)
42      {
43        my $i = $1;
44        $i .= ".png" if !($i =~ /\.png$/);
45        ++$icons{$i};
46      }
47      if($l =~ /new\s+ImageLabel\(\"(.*?)\"/)
48      {
49        my $i = "statusline/$1";
50        $i .= ".png" if !($i =~ /\.png$/);
51        ++$icons{$i};
52      }
53      if($l =~ /createPreferenceTab\(\"(.*?)\"/)
54      {
55        my $i = "preferences/$1";
56        $i .= ".png" if !($i =~ /\.png$/);
57        ++$icons{$i};
58      }
59      if($l =~ /ImageProvider\.get\(\"(.*?)\",\s*\"(.*?)\"\s*\)/)
60      {
61        my $i = "$1/$2";
62        $i .= ".png" if !($i =~ /\.png$/);
63        ++$icons{$i};
64      }
65      if($l =~ /ImageProvider\.overlay\(.*?,\s*\"(.*?)\",/)
66      {
67        my $i = $1;
68        $i .= ".png" if !($i =~ /\.png$/);
69        ++$icons{$i};
70      }
71      if($l =~ /getCursor\(\"(.*?)\",\s*\"(.*?)\"/)
72      {
73        my $i = "cursor/modifier/$2";
74        $i .= ".png" if !($i =~ /\.png$/);
75        ++$icons{$i};
76        $i = "cursor/$1";
77        $i .= ".png" if !($i =~ /\.png$/);
78        ++$icons{$i};
79      }
80      if($l =~ /ImageProvider\.getCursor\(\"(.*?)\",\s*null\)/)
81      {
82        my $i = "cursor/$1";
83        $i .= ".png" if !($i =~ /\.png$/);
84        ++$icons{$i};
85      }
86      if($l =~ /super\(\s*tr\(\".*?\"\),\s*\"(.*?)\"/s)
87      {
88        my $i = "$extends$1";
89        $i .= ".png" if !($i =~ /\.png$/);
90        ++$icons{$i};
91      }
92      if($l =~ /super\(\s*trc\(\".*?\",\s*\".*?\"\),\s*\"(.*?)\"/s)
93      {
94        my $i = "$extends$1";
95        $i .= ".png" if !($i =~ /\.png$/);
96        ++$icons{$i};
97      }
98      if($l =~ /audiotracericon\",\s*\"(.*?)\"/s)
99      {
100        my $i = "markers/$1";
101        $i .= ".png" if !($i =~ /\.png$/);
102        ++$icons{$i};
103      }
104      if($l =~ /\"(.*?)\",\s*parentLayer/s)
105      {
106        my $i = "markers/$1";
107        $i .= ".png" if !($i =~ /\.png$/);
108        ++$icons{$i};
109      }
110      if($l =~ /allowedtypes\s+=.*\{(.*)\}/s)
111      {
112        my $t = $1;
113        while($t =~ /\"(.*?)\"/g)
114        {
115          ++$icons{"Mf_$1.png"};
116        }
117      }
118      if($l =~ /MODES\s+=.*\{(.*)\}/s)
119      {
120        my $t = $1;
121        while($t =~ /\"(.*?)\"/g)
122        {
123          ++$icons{"dialogs/autoscale/$1.png"};
124        }
125      }
126      if($l =~ /enum\s+DeleteMode\s*\{(.*)/s)
127      {
128        my $t = $1;
129        while($t =~ /\"(.*?)\"/g)
130        {
131          ++$icons{"cursor/modifier/$1.png"};
132        }
133      }
134      if($l =~ /\.setButtonIcons.*\{(.*)\}/)
135      {
136        my $t = $1;
137        while($t =~ /\"(.*?)\"/g)
138        {
139          my $i = $1;
140          $i .= ".png" if !($i =~ /\.png$/);
141          ++$icons{$i};
142        }
143      }
144      if($l =~ /extends MapMode/)
145      {
146        $extends = "mapmode/";
147      }
148      if($l =~ /extends ToggleDialog/)
149      {
150        $extends = "dialogs/";
151      }
152    }
153    close FILE;
154  }
155}
156
157my %haveicons;
158
159for($i = 1; my @ifiles = glob("images".("/*" x $i).".png"); ++$i)
160{
161  for my $ifile (sort @ifiles)
162  {
163    $ifile =~ s/^images\///;
164    $haveicons{$ifile} = 1;
165  }
166}
167
168for my $img (sort keys %icons)
169{
170  print STDERR "File $img does not exist!\n" if(!-f "images/$img");
171  delete $haveicons{$img};
172}
173
174for my $img (sort keys %haveicons)
175{
176  print "$img\n";
177}
Note: See TracBrowser for help on using the repository browser.